我正在使用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)清楚地表明了
任何想法?
答案 0 :(得分:1)
正如您在评论中发布的那样,页面上存在错误。您应该使用HTML Tidy来清理它:http://pypi.python.org/pypi/pytidylib/0.2.1
您可以在工作中查看HTML Tidy:http://validator.w3.org/