Я думал, что BeautifulSoup сможет обрабатывать искаженные документы, но когда я отправил ему источник страницы, была напечатана следующая трассировка:
Traceback (most recent call last):
File "mx.py", line 7, in
s = BeautifulSoup(content)
File "build\bdist.win32\egg\BeautifulSoup.py", line 1499, in __init__
File "build\bdist.win32\egg\BeautifulSoup.py", line 1230, in __init__
File "build\bdist.win32\egg\BeautifulSoup.py", line 1263, in _feed
File "C:\Python26\lib\HTMLParser.py", line 108, in feed
self.goahead(0)
File "C:\Python26\lib\HTMLParser.py", line 150, in goahead
k = self.parse_endtag(i)
File "C:\Python26\lib\HTMLParser.py", line 314, in parse_endtag
self.error("bad end tag: %r" % (rawdata[i:j],))
File "C:\Python26\lib\HTMLParser.py", line 115, in error
raise HTMLParseError(message, self.getpos())
HTMLParser.HTMLParseError: bad end tag: u"", at line 258, column 34
Разве это не должно быть в состоянии справиться с такого рода вещами? Если он может справиться с ними, как я мог это сделать? Если нет, есть ли модуль, который может обрабатывать искаженные документы?
РЕДАКТИРОВАТЬ: вот обновление. Я сохранил страницу локально, используя Firefox, и попытался создать объект супа из содержимого файла. Вот где BeautifulSoup терпит неудачу. Если я пытаюсь создать объект супа непосредственно с веб-сайта, он работает. Вот документ, который вызывает проблемы для супа.