2014-10-01 2 views
0

Я извлекаю содержимое url, используя urllib2 в python, и подвергая его собственному синтаксическому анализатору html python. Код прекрасно работает хорошо на моем питон 2.7.4, однако, машина моего друга был питон 2.6.9 и проблема, с которыми сталкиваются на его машине:malformed start tag, исключение выбрано в python 2.6.9, но не в 2.7.4 HTMLParser

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 или выше не является вариантом.

ответ

0

два решения:

-Использовать другой HTMLparser как красивые суп 3 или LXML. Они оба очень легки в освоении и располагаются на python 2.6.

-Попробуйте найти ошибку и отфильтровать ее.

+0

красивый суп не является вариантом. Есть много зависимостей, которые будут затронуты, если я переключусь на BS. –

+0

Тогда единственный вариант - найти ошибку в html. –

+0

Пробовал отлаживать проблему, поставив try: catch: а также попытался проигнорировать ошибку, поставив try: catch: pass, но мой htmlparser не будет анализировать дальше (удаленная страница html, на которую я не контролирую). –