【发布时间】:2016-12-12 01:09:55
【问题描述】:
我正在使用 Python 3.5 和 bs4
以下代码不会从指定网站检索所有表。该页面有 14 个表,但代码的返回值为 2。我不知道发生了什么。我手动检查了 HTML,但找不到它不起作用的原因。每张桌子似乎都没有什么特别之处。
import bs4
import requests
link = "http://www.pro-football-reference.com/players/B/BradTo00.htm"
htmlPage = requests.get(link)
soup = bs4.BeautifulSoup(htmlPage.content, 'html.parser')
all_tables = soup.findAll('table')
print(len(all_tables))
发生了什么事?
编辑:我应该澄清一下。如果我检查汤变量,它包含我希望看到的所有表。我怎么不能用 findAll 方法从汤中提取这些表?
【问题讨论】:
-
检查表格是否通过Ajax加载。
-
此页面使用 JavaScript 来显示数据,但可能所有数据都是 HTML 格式,但带有注释。您可以尝试使用 BS 来查找
comment标签,或者尝试使用字符串函数(或正则表达式)来查找<!-- ... -->- 也许然后您可以将此字符串与 BS 一起使用。
标签: python web-scraping beautifulsoup html-parsing