Я почему-то не могу создать суп из статьи Guardian, которую я загружаю с помощью urllib2.urlopen (), когда тот же код работает с другим URL.
Вот мой код:
import urllib2
from bs4 import BeautifulSoup
url = 'http://www.guardian.co.uk/sport/2012/mar/29/jessica-ennis-london-2012'
myfile = urllib2.urlopen(url)
data = myfile.read()
soup = BeautifulSoup(data)
, которая вызывает следующую ошибку:
Traceback (последний вызов был последним): File
"/home/myhome/workspace/guardiangrep/testing.py", строка 13, в
суп = файл BeautifulSoup (data) "/usr/lib/python2.7/site-packages/beautifulsoup4-4.0.2-py2.7.egg/bs4/init.py",
строка 168, в init
Файл self._feed () "/usr/lib/python2.7/site-packages/beautifulsoup4-4.0.2-py2.7.egg/bs4/init.py",
строка 181, в _feed
Файл self.builder.feed (self.markup) "/usr/lib/python2.7/site-packages/beautifulsoup4-4.0.2-py2.7.egg/bs4/builder/_htmlparser.py",
строка 133, в корме
parser.feed (разметка) Файл "/usr/lib/python2.7/HTMLParser.py", строка 108, в фиде
self.goahead (0) Файл "/usr/lib/python2.7/HTMLParser.py", строка 148, в goahead
k = self.parse_starttag (i) Файл "/usr/lib/python2.7/HTMLParser.py", строка 229, в parse_starttag
endpos = self.check_for_whole_start_tag (i) Файл "/usr/lib/python2.7/HTMLParser.py", строка 304, в
check_for_whole_start_tag
Файл self.error («неправильно сформированный начальный тег») «/usr/lib/python2.7/HTMLParser.py», строка 115, ошибка
поднять HTMLParseError (message, self.getpos ()) HTMLParser.HTMLParseError: неверно сформированный начальный тег, строка 3025, столбец
16
Я понимаю, что заголовки могут быть полезной информацией в этом случае. Если я добавлю
headers = myfile.info()
print headers
Я получаю
Сервер: Apache X-GU-jas: 05-1559 Варьируется: Accept-Encoding, User-Agent
X-GU-gen-jas: 05 Content-Type: text / html; charset = UTF-8 P3P: CP = "CAO
КУРА АДМА ДЕВА ТАЙЯ ПСАА ПСДА ИВАА ИВДА КОНА ТЕЛА НАШ ИНД ОНЛИ ЮНИ
PURi NAV STA PRE LOC "Дата: Пт, 30 марта 2012 09:10:54 GMT
X-GU-PageRenderer: DefaultPageRenderer Keep-Alive: время ожидания = 5, макс = 70
Кодирование передачи: chunked X-GU-tm: 01 Content-Language: en-US
Подключение: закрыть X-GU-httpd: 05
Любая помощь наиболее ценится.
редактирование:
Возвращение к BeautifulSoup 3, кажется, исправляет проблему. Непонятные!