python lxml.etree.Element.text_content 中文报错

fysy0000 2011-11-18 02:58:05
<html>
<body>
<table id = "ta_1" border = "2">
<tr align = "center">
<td><img src="zhengchuang">"张三#279"</td>
<td>lisi</td>
</tr>
<tr align = "center">
<td>13:19 2011-11-17#279</td>
<td>baidu</td>
</tr>
</table>
<body>
</html>
我要解析上面HTML table每一行(tr align = "center")的第一列Text节点信息,但是用方法text_content()对于中文的文字节点会报错,英文的支持完好。请问该怎么处理

import lxml
import lxml.html as HTML
from lxml import etree

fd = open("E:\\test.html","r")
dom = HTML.document_fromstring(fd.read())
trNodesList=dom.xpath("//table[@id='ta_1']//tr")
count =0
for item in trNodesList:
if(item.get("align") == "center"):
for it in item.iter():
if(it.tag =="td"):
print it.text_content()#error place
break
...全文
749 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fysy0000 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 thundor 的回复:]
用NotePad++将输入文件html改成utf-8编码保存后即可
[/Quote]
这个是我本地测试的,实际是用作网页解析的,你的方法可能行不通
fysy0000 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 angel_su 的回复:]
idle在报错,你在纯cmd下试试吧。还有你用的lxml是第三方的吧,没特殊原因用内建的xml模块,这样别人好帮你...
[/Quote]
内建的xml.dom.mindom的解析XML或者HTML要求,规范的XML或者HTML,这样解析网页就显得弱了点
angel_su 2011-11-18
  • 打赏
  • 举报
回复
idle在报错,你在纯cmd下试试吧。还有你用的lxml是第三方的吧,没特殊原因用内建的xml模块,这样别人好帮你...
zengna_com 2011-11-18
  • 打赏
  • 举报
回复
用NotePad++将输入文件html改成utf-8编码保存后即可
fysy0000 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thundor 的回复:]
Python code
#coding:gbk
[/Quote]
还是错误
Traceback (most recent call last):
File "D:/Python27/changest.pyw", line 17, in <module>
print item.text_content()
File "D:\Python27\lib\idlelib\rpc.py", line 595, in __call__
value = self.sockio.remotecall(self.oid, self.name, args, kwargs)
File "D:\Python27\lib\idlelib\rpc.py", line 210, in remotecall
seq = self.asynccall(oid, methodname, args, kwargs)
File "D:\Python27\lib\idlelib\rpc.py", line 225, in asynccall
self.putmessage((seq, request))
File "D:\Python27\lib\idlelib\rpc.py", line 324, in putmessage
s = pickle.dumps(message)
File "D:\Python27\lib\copy_reg.py", line 70, in _reduce_ex
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle _ElementUnicodeResult objects
zengna_com 2011-11-18
  • 打赏
  • 举报
回复
#coding:gbk

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧