BS没有“看到”所有表格?

时间:2012-08-01 20:56:11

标签: python parsing html-parsing beautifulsoup

我正在使用BeautifulSoup来解析baseball-reference.com上的数据,它可以找到每个页面,除了一些像this one相同的页面(不同的数据)完美地工作,即{{3} }。 我正在尝试过滤掉'stats_table'作为其中一个类的表。我使用这段代码:

bs = BeautifulSoup(stream, 'lxml', parse_only=SoupStrainer('table'))

然后我就像:

for table in bs.find_all('table'):
     print table.attrs
       ... bla bla...

很明显,table.attrs表示这段代码没有看到击球和投球表,而且他们在那里......我再说一遍:相同的代码几乎适用于所有其他类似的页面。 查看str(bs)清楚地表明了

任何想法?

1 个答案:

答案 0 :(得分:1)

正如您在评论中发布的那样,页面上存在错误。您应该使用HTML Tidy来清理它:http://pypi.python.org/pypi/pytidylib/0.2.1

您可以在工作中查看HTML Tidy:http://validator.w3.org/