Beautifulsoup没有得到所有tr

时间:2017-04-19 16:17:53

标签: python web-scraping beautifulsoup

我在抓取此链接时遇到问题http://www.kooora.com/?c=12640&cm=m, 我希望在table#contentTable中获取所有内容,但它不会返回所有内容。 当我在浏览器中检查html时,我发现在第二个之后有一个标签,代码在那之后不读取该标签。

#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。

1 个答案:

答案 0 :(得分:0)

原因可能是该网页不是有效的HTML(根据https://validator.w3.org/nu/?doc=http%3A%2F%2Fwww.kooora.com%2F%3Fc%3D12640%26cm%3Dm)。

特别是,验证人说:

  

错误:看到结束标记td,但是有开放元素。

     

从第147行第5321栏;到第147行,第5325栏

在这种情况下,最好使用正则表达式来提取已知模式,而不是BeautifulSoup。