gpt4 book ai didi

python - Beautifulsoup 未返回页面的完整 HTML

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:22 25 4
gpt4 key购买 nike

我已经在该网站上挖掘了一段时间,但无法找到问题的解决方案。我对网络抓取相当陌生,并尝试使用 beautiful soup 从网页中简单地提取一些链接。

url = "https://www.sofascore.com/pt/futebol/2018-09-18"
page = urlopen(url).read()
soup = BeautifulSoup(page, "lxml")
print(soup)

在最基本的层面上,我想做的就是访问网站内的特定标签。我可以自己解决其余的问题,但我遇到的问题是我正在寻找的标签不在输出中。

例如:使用内置的 find() 我可以获取以下 div 类标签: 类=“l__grid js-页面布局”

但是我真正要寻找的是嵌入在树中较低级别的标签的内容。
js-事件列表-锦标赛事件

当我对较低级别的标记执行相同的查找操作时,我没有得到任何结果。

使用基于 Azure 的 Jupyter Notebook,我在 stackoverflow 上尝试了许多类似问题的解决方案,但没有成功。

谢谢!肯尼

最佳答案

页面使用JS动态加载数据,所以必须使用selenium。检查下面的代码。请注意,您必须安装 selenium 和 chromedrive (解压文件并复制到python文件夹中)

import time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

url = "https://www.sofascore.com/pt/futebol/2018-09-18"
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=options)
driver.get(url)
time.sleep(3)
page = driver.page_source
driver.quit()
soup = BeautifulSoup(page, 'html.parser')
container = soup.find_all('div', attrs={
'class':'js-event-list-tournament-events'})
print(container)

或者你可以使用他们的 json api

import requests
url = 'https://www.sofascore.com/football//2018-09-18/json'
r = requests.get(url)
print(r.json())

关于python - Beautifulsoup 未返回页面的完整 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57790445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com