python - BeautifulSoup 输出作为没有该部门的内容?
没有该部门的内容?
问题描述
我正在尝试使用 beautifulsoup 从网站上抓取一些信息,但输出与网页 html 不同。我试图从网页中取出的内容在
<div class="page-content">
但在我的 beautifulsoup 对象中,它显示为:
<div class="page-content loading"></div>
没有任何内容包含在该部门中。无论如何,我试图找到我正在寻找的东西,但它一无所获。我还尝试了 html5lib 和 lxml 解析器,但这并没有改变输出。浏览器是否运行某种 javascript 代码,阻止我获取完整的网页 html 或其他内容?我是新手,所以任何建议都将不胜感激。
这是我的脚本:
URL = 'https://zone4.ca/race/2020-11-08/c91ec8f6/results'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find_all("div", class_="racer-row")
print(results)
print(soup)
解决方案
是的,它肯定会通过 javascript 查询加载内容。您可以复制这些查询的内容(标头、有效负载等)并通过requests
库手动发送它们,或者(更好的 imo)使用浏览器模拟驱动程序selenium
来抓取动态页面。
推荐阅读
- ssl - 通过 ssl 连接时,服务器在 alpine 内返回“无效的主机标头”
- html - 捏缩放时网站向左移动(iOS)
- c++ - 如何将我的 cli 信息(变量等)共享给作为 bash shell 脚本的子进程
- oracle - 使用 kerberos 和 AD 的 Oracle 数据库身份验证
- python - 如何使用 python 从包含括号的字符串中提取子字符串?
- c# - 如何从 Sitecore 的内容树中获取嵌套项目并构建站点地图?
- javascript - 如何:在 React 应用程序的 CSS“网格”中随机化元素位置和大小
- php - 在自定义简码中执行的其他语句
- google-cloud-speech - 语音到文本抛出错误音频超时错误:长时间没有音频。音频应该接近实时发送
- regex - 我在 ruby 中的 form_tag 如何接受我的 def REGEX(在应用程序助手中)?