2014-01-23 200 views
0

我正在嘗試讀取GIGANTIC文件。做簡單的搜索返回顯然不正確的結果!beautifulsoup不返回預期的結果?

繼承人的代碼:

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是最簡單的例子。我搜索的任何其他東西也都以比預期更少的方式返回。 beautifulsoup只解析這麼多行然後退出?或者我在做什麼明顯錯誤?

謝謝

+0

我按照原樣運行了你的代碼,並且得到了你提到的'td'元素的確切數目,15562.我懷疑你需要更新你的'lxml'版本或你的美麗湯版本到最新版本。我有lxml 3.2.4和BS 3.2.1 – qwwqwwq

+0

@qwwqwwq我剛剛運行'sudo apt-get -purge remove python-bs4'和'pip uninstall beautifulsoup'和'pip install lmxl --upgrade',但仍然獲得2737。這讓我非常惱火。還有什麼地方可以安裝一個有缺陷的美麗? –

+0

請注意,我使用python的默認html解析器運行此操作,同時得到了2737,因此我假設它必須是beautifulsoup的問題,然後 –

回答

0

我和你有同樣的問題。用這種方法嘗試不同的解析器:

soup = BeautifulSoup(html, 'html5lib') 

這將解決您的問題。