0

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 以降にアップグレードすることはオプションではありません。

4

1 に答える 1

0

2 つのソリューション:

- Beautiful Soup 3 や lxml などの別の htmlparser を使用します。どちらも非常に習得が容易で、Python 2.6 と互換性があります。

-バグを見つけて、それを除外してみてください。

于 2014-10-01T09:05:35.343 に答える