【发布时间】:2017-03-01 23:07:41
【问题描述】:
我已经完成了针对类似问题的大多数解决方案,但还没有找到一个有效的解决方案,更重要的是,还没有找到解释为什么在被抓取的网站上调用 Javascript 或其他内容时会发生这种情况的原因.
我正在尝试从网站上抓取游戏“Officials”的表格: http://www.pro-football-reference.com/boxscores/201309050den.htm
我的代码是:
url = "http://www.pro-football-reference.com/boxscores/201309050den.htm"
html = urlopen(url)
bsObj = BeautifulSoup(html, "lxml")
officials = bsObj.findAll("table",{"id":"officials"})
for entry in officials:
print(str(entry))
我现在只是打印到控制台,但我得到了一个空列表,使用 findAll 或 None 使用 find。 我也用基本的 html.parser 试过这个,但没有运气。
对html有更好理解的人可以告诉我这个网页有什么不同吗?提前致谢!
【问题讨论】:
-
那个元素不存在。在浏览器中访问 URL,然后选择“查看源代码”或类似内容。搜索“官方”。请注意,唯一看起来像具有该 id 的表格的内容是在评论中(即在
<!-- -->中)。 -
那么是什么告诉网站显示表官员?当我进入开发工具时,我确实在网站上看到了该元素,那么它是否可以存在于网站以提取表单但不在 BeautifulSoup 看到的网站 html 中?薛定谔的猫?
-
旁白:请务必阅读他们的terms of use 中有关自动检索数据的第 2 部分。
标签: python web-scraping beautifulsoup