格式错误的开始标记,在python 2.6.9中引发异常,但在2.7.4 HTMLParser中未引发异常

格式错误的开始标记,在python 2.6.9中引发异常,但在2.7.4 HTMLParser中未引发异常,python,python-2.7,python-2.6,html-parser,Python,Python 2.7,Python 2.6,Html Parser,我在python中使用urllib2获取url内容,并将其置于python的原生html解析器之下。代码在我的python 2.7.4上运行得非常好,但是,我朋友的机器上有python 2.6.9,他机器上面临的问题是: Traceback (most recent call last): File "opsview_audit.py", line 420, in <module> check_instances_against_regex(instances) File "opsv

我在python中使用urllib2获取url内容,并将其置于python的原生html解析器之下。代码在我的python 2.7.4上运行得非常好,但是,我朋友的机器上有python 2.6.9,他机器上面临的问题是:

Traceback (most recent call last):
File "opsview_audit.py", line 420, in <module>
check_instances_against_regex(instances)
File "opsview_audit.py", line 219, in check_instances_against_regex
attrs_being_monitored = get_host_monitoring_status(cred['url'], running_instances, 
cred['user_name'], cred['pass_key'])
File "opsview_audit.py", line 112, in get_host_monitoring_status
parser.feed(result.read())
File "/usr/lib64/python2.6/HTMLParser.py", line 108, in feed
self.goahead(0)
File "/usr/lib64/python2.6/HTMLParser.py", line 148, in goahead
k = self.parse_starttag(i)
File "/usr/lib64/python2.6/HTMLParser.py", line 229, in parse_starttag
endpos = self.check_for_whole_start_tag(i)
File "/usr/lib64/python2.6/HTMLParser.py", line 304, in check_for_whole_start_tag
self.error("malformed start tag")
File "/usr/lib64/python2.6/HTMLParser.py", line 115, in error
raise HTMLParseError(message, self.getpos())
HTMLParser.HTMLParseError: malformed start tag, at line 509, column 47
可能是某些开始标记不正确,这在python 2.6.9中是作为异常抛出的,但在2.7.4中不是 在这里,将2.6.9升级到2.7.4或更高版本不是一个选项。

两种解决方案:

-使用另一个HTMLPasser,如BeautifulSoup3或lxml。它们都非常容易学习,并且可以使用python 2.6


-尝试查找错误并将其过滤掉。

美丽的汤不是一个选项。如果我切换到BS,有许多依赖项会受到影响。然后,剩下的唯一选项是尝试在html中查找错误。尝试通过放置try:catch:来调试问题,也尝试通过放置try:catch:pass来忽略错误,但我的HTMLPasser不会进一步解析我无法控制的远程获取的html页面打开。打印html或在不使用解析器的情况下将其写入文件,然后尝试使用html验证程序查找错误。我安装了另一个版本的python,并且正在使用同一版本而不是默认版本调用脚本。成功了。