我在抓取此链接时遇到问题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。
答案 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。