Selenium 卡在“访问 URL 前检查您的浏览器”

新手上路,请多包涵

这是最近的一个问题,我想是三四天前开始的。它并不独立于我自己的系统,因为我也在远程服务器(Windows 10、Windows Server)上运行该软件。它也不与任何特定的 URL 隔离,因为我现在无法通过任何具有此检查的 URL。

标题:“请稍等…”“访问 URL 前检查您的浏览器”。 “这个过程是自动的。您的浏览器将很快重定向到您请求的内容。” “请允许最多 5 秒…” “Cloudflare 的 DDos 保护” “Ray Id:xxxxxxxxxxxxxxxxxx”

  • 我尝试过不同的系统(都是基于 Windows 的)
  • 我尝试过不同的驱动程序(gecko 和 chrome)
  • 我尝试了不同的网址
    
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get('wwww.etherdelta.com')
    

有谁知道我该如何解决这个问题;或者是时候放下可怜的提米(程序)了?

原文由 gloomyfit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 770
1 个回答

我对 Firefox 也有同样的问题。我可以通过切换到 Chrome 来解决它。

示例代码:

 from selenium import webdriver
url = "<WEBSITE>"
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
driver.get(url)

“–disable-blink-features=AutomationControlled”隐藏“navigator.webdriver”标志。

请参阅 Selenium webdriver:修改 navigator.webdriver 标志以防止 selenium 检测

编辑

您还必须更改 chromedriver 的一些默认变量。

使用 perl 的示例:

 perl -pi -e 's/cdc_/dog_/g' /path/to/chromedriver

有关更多详细信息,请查看原始帖子。

请参阅 当您将 selenium 与 chromedriver 一起使用时,网站可以检测到吗?

编辑 2

Cloudflare 不断调整他们的算法,因此您可以尝试使用 undetected-chromedriver 而不是手动更改 chromedriver。

undetected-chromedriver 是一个优化的 Selenium Chromedriver 补丁,不应触发反机器人服务。它会自动下载驱动程序二进制文件并对其进行修补。

这是否有效取决于网站和当前的开发状态。 Cloudflare 似乎在跟踪 undetected-chromedriver 的开发。

 import undetected_chromedriver as uc
url = "<WEBSITE>"
driver= uc.Chrome()
driver.get(url)

原文由 MrTiny 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题