- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前正在尝试使用 Python 3.6 中的请求和 BeautifulSoup 模块进行练习,但遇到了一个问题,我似乎无法在其他问题和答案中找到任何相关信息。
似乎在页面的某个位置,Beuatiful Soup 停止识别标签和 ID。我正在尝试从这样的页面中提取播放数据:
http://www.pro-football-reference.com/boxscores/201609080den.htm
import requests, bs4
source_url = 'http://www.pro-football-reference.com/boxscores/201609080den.htm'
res = requests.get(source_url)
if '404' in res.url:
raise Exception('No data found for this link: '+source_url)
soup = bs4.BeautifulSoup(res.text,'html.parser')
#this works
all_pbp = soup.findAll('div', {'id' : 'all_pbp'})
print(len(all_pbp))
#this doesn't
table = soup.findAll('table', {'id' : 'pbp'})
print(len(table))
使用 Chrome 中的检查器,我可以看到该表确实存在。我还尝试在 HTML 后半部分的 'div's 和 'tr's 上使用它,但它似乎不起作用。我已经尝试过标准的“html.parser”以及 lxml 和 html5lib,但似乎没有任何效果。
我是不是做错了什么,或者 HTML 或其格式中是否有什么东西阻止 BeautifulSoup 正确地找到后面的标签?我在这家公司(hockey-reference.com、basketball-reference.com)运行的类似页面上遇到过问题,但能够在其他网站上正确使用这些工具。
如果它与 HTML 有关,是否有更好的工具/库来帮助提取这些信息?
谢谢你的帮助,高炉
最佳答案
BS4 在对 URL 进行 GET 请求后将无法执行网页的 javascript。我认为关注表是从客户端 javascript 异步加载的。
因此,客户端 javascript 需要在抓取 HTML 之前先运行。这post描述了如何做到这一点!
关于python - 美汤找不到标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44867425/
我正在努力学习 Ruby Koans 以尝试学习 Ruby,到目前为止一切顺利。我已经得到了贪婪的公案,在撰写本文时它是 183。我有一个可行的解决方案,但我觉得我只是拼凑了一堆 if/then 逻辑
我正在尝试创建一个扩展 boost 图形库行为的类。我希望我的类是一个模板,用户提供一个类型(类),用于在每个顶点存储属性。那只是背景。我正在努力创建一个更简洁的 typedef 来定义我的新类。 基
我正在使用 suds 包从网站查询 API,从他们的网站返回的数据如下所示: (1)。谁能告诉我这是什么格式? (2)。如果是这样,解析数据的最简单方法是什么?我已经使用 BeautifulSoup
所以我有一个看起来像这样的 html 文档: Speaker Name: Title of Talk | Subtitle | website.com ... [Other Stuff] Poste
我是一名优秀的程序员,十分优秀!