gpt4 book ai didi

python - 使用 Python(漂亮的汤)抓取需要单击 "I agree to cookies"按钮的网页?

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

我正在尝试为当天的所有足球(足球)比赛抓取以下 URL:https://www.soccerstats.com/matches.asp?matchday=2&daym=tomorrow

我的代码以前可以工作,但网站已经更改,您现在需要在网站加载页面之前单击“我同意 cookie”按钮。这现在导致我的代码出现问题。有解决办法吗?

非常感谢任何帮助。

我已经尝试查看 bs4 的文本输出,很明显网站没有加载,而是在输出中可以看到“我同意 cookies”文本,这意味着它没有通过这个阶段。

from bs4 import BeautifulSoup
import requests

url = "https://www.soccerstats.com/matches.asp?matchday=2"
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, 'html.parser')
all_matches = []

all_matches = re.findall(r"""<a class='button' style='background-color:#AAAAAA;font-color=white;' href='(.*?)'>""", data)

输出应列出单个匹配 url。

最佳答案

当您点击“我同意 cookie”时,网站会向您的浏览器发送一个 cookie,基本上是告诉网站“该用户已同意 cookie”。您可以通过打开“应用程序”选项卡并单击左侧的“Cookies”,然后导航到您所在的网站,在 Chrome 的 DevTools 之类的工具中捕获此 cookie。

完成后,单击“我同意 cookie”并查看哪些 cookie 添加到您的浏览器。在我查看的网站上,其中一个添加的 cookie 名为 __hs_opt_out,其值为 no。然后,您可以简单地 add that cookie to your request :

r = requests.get(url, cookies={'__hs_opt_out': 'no'})

或者,甚至更好:

s = requests.Session()
s.cookies.update({'__hs_opt_out': 'no'})
s.get(url) # Automatically uses the session cookies

# Some more code...

s.get(other_url) # Remembers the cookie from before

关于python - 使用 Python(漂亮的汤)抓取需要单击 "I agree to cookies"按钮的网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171353/

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