gpt4 book ai didi

python - 使用 selenium 抓取 bet365.com 时出现的最后一个问题

转载 作者:行者123 更新时间:2023-12-03 08:27:58 26 4
gpt4 key购买 nike

在社区查找信息后,我在一篇文章中看到下一个代码直到几天前才起作用:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("window-size=1920,1080")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
browser=webdriver.Chrome(options=options,executable_path=r"chromedriver.exe")

browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
browser.execute_cdp_cmd('Network.setUserAgentOverride',
{"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4240.198 Safari/537.36'})
browser.get('https://www.bet365.com')

之后,下一个作为解决方案:用Notepad++打开文件chromedriver.exe并搜索并将“cdc_”替换为“xyz_”并保存文件。并将此行添加到 chromedriver 的选项中: options.add_argument('--disable-blink-features=AutomationControlled')

我不知道为什么这对我不起作用。我使用 Chrome 88.0.4324.146 和 chromedriver 版本 88.0.4324.96,并执行以下代码:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("window-size=1920,1080")
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
browser=webdriver.Chrome(options=options,executable_path=r"chromedriver.exe")

browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
browser.execute_cdp_cmd('Network.setUserAgentOverride',
{"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4240.198 Safari/537.36'})
browser.get('https://www.bet365.com')

但是执行后页面会卡住加载直至崩溃。

最佳答案

import subprocess
#other imports

subprocess.Popen(
'"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" --remote-debugging-port=9222', shell=True)

options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

driver = webdriver.Chrome(options=options)
driver.maximize_window()
driver.get('https://www.bet365.com')

似乎该站点以某种方式检测自动化,解决方法是使用调试地址打开 chrome,然后使用上面的代码将 selenium 连接到此。根据您的环境更改chrome.exe

注意:运行此脚本之前请确保关闭所有 Chrome 浏览器

关于python - 使用 selenium 抓取 bet365.com 时出现的最后一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66089231/

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