【问题标题】:How to Make Selenium Headless Undetectable如何使 Selenium Headless 不可检测
【发布时间】:2020-04-26 15:29:35
【问题描述】:

我和我的朋友正在尝试使用 selenium headless 进入网站,但我们一直被他们的机器人阻止,并被要求解决验证码。我们的代码目前在 selenium 不是无头时有效,因此我们认为它与发送到网站的窗口大小有关。我们尝试通过 chromedriver 选项手动将窗口大小设置为 1920x1080,但我们仍然被该站点阻止。窗口大小设置正确,因为运行命令print(driver.get_window_size()) 返回我设置的大小,因此网站必须运行其他一些测试来检查 selenium 是否是无头的。

【问题讨论】:

  • 尝试使用 xvfb-run 而不是 headless 运行。

标签: python selenium web-scraping selenium-chromedriver headless


【解决方案1】:

该站点显然在检查无头浏览器,然后拒绝它们访问。这是一篇关于避免检测的文章:Making Chrome Headless Undetectable

通常它的运行速度是可以检测到的。在一个合法的环境中,速度是你想要的。如果您尝试自动化,您可能需要在操作之间放置一些等待来模拟用户。

【讨论】:

  • 我们被要求在进入网站后立即解决验证码而不进行任何其他操作,因此问题不在于速度。有什么办法可以修改chromedriver的选项,这样就不需要集成js文件了?
  • captcha 仅在 headless 上检测到这一事实表明它必须与一些预定义的 Js 变量有关。所以你可以尝试改变它,见this here on how to do it
  • @AviKomarlingam 看到我的回答,如果有帮助请告诉我
  • 我查看了您的答案,但找不到任何要修改的 js 文件(我在 Windows 机器上),在十六进制编辑器中打开 chromedriver.exe 仍然给我乱码。
【解决方案2】:

使其无法检测到的最佳方法是添加时间范围。

Import time
time.sleep(2)

它通常有效。

【讨论】:

    猜你喜欢
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多