python中etree是什么_Python eTree解析器没有附加elemen

这篇博客介绍了如何在Python中使用`xml.etree.ElementTree`和`HTMLParser`来解析HTML内容。作者通过连接Postgres数据库获取数据,然后创建一个HTML解析器`LinksParser`,将模板HTML文件转换为Element对象。在循环遍历数据库结果时,尝试将数据插入到Element对象中,但在将新内容附加到已有元素时遇到了TypeError,提示必须是Element类型而不是Element。
摘要由CSDN通过智能技术生成

看看我的日志,看看它是怎么说的,我从Postgres返回的行已经从一个字符串变成了一个元素(我打印字符串,打印元素,打印isElement boolean!)但是当我试图附加它时,错误是它不是一个元素。气喘吁吁。在import sys

from HTMLParser import HTMLParser

from xml.etree import cElementTree as etree

import xml.etree.ElementTree as ET

from xml.etree.ElementTree import Element, SubElement, tostring

import psycopg2

import psycopg2.extras

def main():

# Connect to an existing database

conn = psycopg2.connect(dbname="**", user="**", password="**", host="/tmp/", port="**")

# Open a cursor to perform database operations

cur = conn.cursor(cursor_factory = psycopg2.extras.RealDictCursor)

cur.execute("SELECT * FROM landingpagedata;")

rows = cur.fetchall()

class LinksParser(HTMLParser):

def __init__(self):

HTMLParser.__init__(self)

self.tb = etree.TreeBuilder()

def handle_starttag(self, tag, attributes):

self.tb.start(tag, dict(attributes))

def handle_endtag(self, tag):

self.tb.end(tag)

def handle_data(self, data):

self.tb.data(data)

def close(self):

HTMLParser.close(self)

return self.tb.close()

template = 'template.html'

# parser.feed(open('landingIndex.html').read()) #for testing

# root = parser.close()

for row in rows:

parser = LinksParser()

parser.feed(open(template).read())

root = parser.close()

#title

title = root.find(".//title")

title.text = row['title']

#headline

h1_id_headline = root.find(".//h1")

h1_id_headline.text = row['h1_id_headline']

# print row['h1_id_headline']

#intro

p_class_intro = root.find(".//p[@class='intro']")

p_class_intro.text = row['p_class_intro']

# print row['p_class_intro']

这就是问题发生的地方!在

^{pr2}$

我的日志是:{background: url(/images/courses/azRealEstate.png) center no-repeat;}

True

Traceback (most recent call last):

File "/Users/Morgan13/Programming/LandingPageBuilder/landingPages/landingBuilderTest.py", line 108, in main()

File "/Users/Morgan13/Programming/LandingPageBuilder/landingPages/landingBuilderTest.py", line 84, in main

p_class_recommendedbackground.append(newElement)

TypeError: must be Element, not Element

[Finished in 0.1s with exit code 1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值