2014-01-23 4 views
0

Я пытаюсь прочитать файл GIGANTIC. Выполнение простых запросов возвращает явно неверные результаты!beautifulsoup не возвращает ожидаемых результатов?

Heres код:

import urllib2 
import re 
from bs4 import BeautifulSoup 

data = urllib2.urlopen('http://www.nhl.com/scores/htmlreports/20132014/PL020749.HTM') 
html = data.read() 

soup = BeautifulSoup(html, 'lxml') 

a = soup.findAll('td') 

print len(a) 

это производит

2737 

однако только вручную искать для <td в возвышенном тексте показывает, что есть 15562td элементов на этом исходном коде.

td - самый простой пример. все остальное, что я ищу, также возвращается меньше, чем ожидалось. Прекрасно ли разбирает только синтаксический анализ так много строк, а затем выходит? Или я делаю что-то явно неправильно?

спасибо

+0

Я запустил ваш код как есть, и я получил точный номер элемента 'td', который вы упомянули, 15562. Я подозреваю, что вам нужно обновить версию' lxml' или вашу версию прекрасного супа до последней версии. У меня есть lxml 3.2.4 и BS 3.2.1 – qwwqwwq

+0

@qwwqwwq Я просто побежал 'sudo apt-get -purge удалять python-bs4' и' pip uninstall beautifulsoup' и 'pip install lmxl -upgrade', но все равно получаю 2737. Я очень раздражаюсь этим. есть ли где-нибудь еще неисправный красивый порт? –

+0

Обратите внимание, что я запускал это с использованием парсинга html по умолчанию python, а также получил 2737, поэтому я предполагаю, что это проблема с beautifulsoup, а затем –

ответ

0

У меня такая же проблема с вами. Попробуйте другой синтаксический анализатор таким образом:

soup = BeautifulSoup(html, 'html5lib') 

Это позволит решить вашу проблему.

Смежные вопросы