python - Beautiful Soup(代码正在运行)现在只返回某些标签
问题描述
几周前我正在抓取这个网站,但有些代码不再有效。
此代码按预期返回所有内容:
from bs4 import BeautifulSoup
import requests
url = 'https://www.sportsbookreview.com/betting-odds/nfl-football/consensus/'
res = requests.get(url)
soup = BeautifulSoup(res.content, "lxml")
soup.find_all('div', {'class': 'hUMQK _3JPYB'})
但是,当对下面的代码执行查找全部时,它现在返回一个空列表并且它曾经可以工作。网页 HTML 中似乎没有任何变化
soup.find_all('div', {'class': '_3h0tU'})
解决方案
因为我不知道网站是否改变了填充方式,但如果允许页面加载时间则可以工作。使用 selenium 检索就好了。似乎内容是 JS 加载的。
from selenium import webdriver
URL = "https://www.sportsbookreview.com/betting-odds/nfl-football/consensus/"
d = WebDriver.Chrome()
d.get(URL)
for item in d.find_elements_by_css_selector("._3h0tU"):
Print(item.Text)
d.quit()
推荐阅读
- drag-and-drop - Sortablejs 禁止从列表拖动到外部编辑器
- python - 导入模块后tensorflow导入报错的解决方法
- visual-studio-code - 在 vscode 中禁用特定的键绑定
- google-chrome-extension - chrome扩展和pwa之间如何通信?
- c - 将指针传递给递归函数,该函数最初从 main - cast 传递给来自不同大小的整数的指针——C
- spring - 在编译 Spring mvc 示例时,在 pom.xml 中获取“无法调用“java.net.URI.getScheme()”,因为“uri”为空”
- python-3.x - 获取用户输入并在 Turtle Screen 上显示
- java - Jacoco 无法使用
在 pom.xml 中 - nginx - 如何优化我的 nginx 配置
- python - 如何从我的 txt 文件中搜索和显示所有记录?