【发布时间】:2014-07-05 15:16:48
【问题描述】:
我正在尝试使用 urllib2 和 ElementTree 在 python 中解析 HTML 页面,但在解析 HTML 时遇到了问题。网页在带引号的字符串中包含“&”,但 ElementTree 为包含 & 的行抛出 parseError
脚本:
import urllib2
url = 'http://eciresults.nic.in/ConstituencywiseU011.htm'
req = urllib2.Request(url, headers={'Content-type': 'text/xml'})
r = urllib2.urlopen(req).read()
import xml.etree.ElementTree as ET
htmlpage=ET.fromstring(r)
这会在 Python 2.7 中引发以下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1282, in XML
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1624, in feed
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1488, in _raiseerror
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 676, column 73
错误对应以下行
<input type="hidden" id="HdnFldAndamanNicobar" value="1,Andaman & Nicobar Islands;" />
读取 HTML 页面时的样子,变量 r 中的 & 符号未解析为 &amp;
我尝试使用 R 程序使用 htmlTreeParse 进行解析,“&”被正确转换为 &amp;。
如果我在 urllib2 中遗漏任何内容,请告诉我
编辑:我将“&”替换为&amp;,但第 904 行在 javascript 中包含
LINE:904 for (i = 0; i < strac.length - 1; i++) {
【问题讨论】:
标签: python-2.7 urllib2 elementtree