1
我有一個問題,刮這個鏈接http://www.kooora.com/?c=12640&cm=m, 我想獲得所有在表#contentTable,但它不會返回所有這些。 當我檢查瀏覽器中的html時,發現第二個標籤後面有一個標籤,代碼在此之後讀取標籤。Beautifulsoup沒有得到所有tr在表
#get teams
url='http://www.kooora.com/?c=12640&cm=m'
urlopen=urllib2.urlopen(url)
bso=BeautifulSoup(urlopen.read(),'html5lib')
tcontenttable=bso.find('table',attrs={'id':'contentTable'}).find('tbody')
print len(tcontenttable.find_all('tr')) # only 5
它返回只有5個,但是它要超過5
我同意你的看法,但使用正則表達式非常耗時,因爲我有很多數據來提取它。我試圖改變解析器,使用「lxml」,但沒有解決問題。 – nabaz
另一個解析器沒有幫助也就不足爲奇了;他們都會遇到格式不正確的問題。 這就是我提出正則表達式的原因,因爲您可以編寫更輕鬆的解析規則來允許某些類型的錯誤。我不明白爲什麼你需要提取的數據量會阻止你使用正則表達式。你爲什麼認爲他們是「耗時」? – Dietmar
我剛剛發現問題所在,我想提取的一些數據是由JavaScript動態生成的,也就是爲什麼美麗的湯沒有讀取所有的tr。我想我需要尋找模塊來解析動態創建的標籤,我試過正則表達式,但我得到了相同的結果。 – nabaz