3

我在尝试使用 chrome 驱动程序和 selenium 访问网站 (bet365.com) 时遇到了一些麻烦(我被“阻止”了)。

我可以使用普通的 chrome 访问该站点,但是当我尝试使用 chrome 驱动程序时,它不起作用。

我之前遇到过这个问题,并通过使用以下一些选项(python)来纠正它:

from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options, executable_path=r'PATH_TO\chromedriver.exe')
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})
driver.execute_cdp_cmd("Network.enable", {})
driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36'})

driver.get("https://www.bet365.com/")

现在,问题又回来了,这段代码无法再绕过保护。有人能帮我吗?

4

1 回答 1

3

如果检测到Selenium驱动的ChromeDriver启动 Browsing Context,一个潜在的解决方案是使用undetected-chromedriver来初始化Chrome Browsing Context

undetected-chromedriver是一个优化的 Selenium Chromedriver 补丁,它不会触发像 Distill Network / Imperva / DataDome / Botprotect.io 这样的反僵尸服务。它会自动下载驱动程序二进制文件并对其进行修补。

  • 代码块:

    import undetected_chromedriver as uc
    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = uc.Chrome(options=options)
    driver.get('https://bet365.com')
    

参考

您可以在以下位置找到一些相关的详细讨论:

于 2021-02-07T20:21:32.067 回答