【问题标题】:How can I bypass the Google CAPTCHA with Selenium and Python?如何使用 Selenium 和 Python 绕过 Google 验证码?
【发布时间】:2020-03-11 08:05:08
【问题描述】:

如何使用 Selenium 和 Python 绕过 Google 验证码?

当我尝试抓取某些内容时,Google 会给我一个验证码。我可以使用 Selenium Python 绕过 Google 验证码吗?

例如,它是 Google reCAPTCHA。您可以通过此链接查看此验证码:https://www.google.com/recaptcha/api2/demo

【问题讨论】:

  • 嗯.. 那么验证码有什么意义呢?
  • 我认为如果你想绕过验证码,唯一的方法就是使用别人的服务。您将验证码传递给他们,他们将文本返回给您。
  • 听起来更可行。我不打算尝试。大概找到checkbox元素的坐标,发送点击。
  • 但是,您首先是如何获得验证码的?你的某些行为一定让谷歌认为你是机器人。
  • @HjSin 谢谢关注 能否请给我答案,以便我更好地理解

标签: python selenium selenium-chromedriver recaptcha captcha


【解决方案1】:

好的,所以有一个简单的python脚本可以为你解决验证码。

它基本上是读取音频,然后使用谷歌助手将其转换为文本并粘贴。

它仅适用于音频验证码,而 imahe 验证码 V2 的情况最多

https://www.google.com/url?sa=t&source=web&rct=j&url=https://github.com/ohyicong/recaptcha_v2_solver&ved=2ahUKEwjG_Z2g-8f1AhUCdBQKHdIiANwQFnoECAUQAQ&usg=AOvVaw3dkyBTmAmjHqLRZoTzxNG8

免责声明!

我不写脚本,我只是想这样做,但得到了这个兄弟项目,想帮助别人完成这个。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

像解决它一样绕过还是像根本没有得到它一样绕过?

解决它:

  • 注册 2captcha、capmonster cloud、deathbycaptcha 等,并按照他们的指示进行操作。他们会给你一个令牌,你通过表格传递。

永远不会得到它:

  • 确保您拥有良好的 IP 声誉(对于 Cloudflare 来说最重要)。
  • 确保您拥有良好的浏览器指纹(对 Distil 来说最重要)- 我推荐 puppeteer + 隐身插件。

【讨论】:

    【解决方案3】:

    验证码是为了避免那些自动化的机器人。你可以手动解决验证码,你可以继续工作。 像这样:

    import time
    from time import sleep
    
    time.sleep (60)
    dus = input ('Did you solve the captcha? 1 for yes 2 for no :')
    
    if dus == 1 :
          continue
    
    else :
          time.sleep (60)
          tdus = input ('Did you solve the captcha? 1 for yes 2 for 
          no :')
    
          if tdus == 1 :
            continue
           
          else :
             exit
    

    【讨论】:

    • 我看不到你的意思。
    【解决方案4】:

    简单的解决方案是暂停程序 10 秒或更长时间,然后在自动浏览器打开时自行解决 reCAPTCHA,然后程序在 10 秒后启动并执行程序的其余部分,例如点击提交按钮或其他东西

    【讨论】:

      【解决方案5】:

      清除浏览历史、缓存数据、cookies 和其他网站数据 首先在 selenium 打开的浏览器窗口中创建一个 Google 帐户。 登录您的帐户

      wd.get("https://accounts.google.com/signin/v2/identifier?hl=en&passive=true&continue=https%3A%2F%2Fwww.google.com%2F%3Fgws_rd%3Dssl&ec=GAZAmgQ&flowName=GlifWebSignIn&flowEntry=ServiceLogin");
          Thread.sleep(2000);
          wd.findElement(By.name("identifier")).sendKeys("Email"+Keys.ENTER);
          Thread.sleep(3000);
          wd.findElement(By.name("password")).sendKeys("Password"+Keys.ENTER);
          Thread.sleep(5000);
      

      然后使用此代码打开任何使用 recaptcha 勾选复选标记的网站

      String framename=wd.findElement(By.tagName("iframe")).getAttribute("name");
                  wd.switchTo().frame(framename);
          wd.findElement(By.xpath("//span[@id='recaptcha-anchor']")).click();
      

      你不会找到任何谜题或任何东西。

      【讨论】:

        【解决方案6】:

        为了在抓取 Google 时绕过验证码,您必须手动解决验证码并导出 Google 提供给您的 cookie。现在,每次打开 Selenium WebDriver 时,请确保添加导出的 cookie。 GOOGLE_ABUSE_EXEMPTION cookie 是您要查找的,但为了安全起见,我会保存所有 cookie。

        如果您希望在您的抓取中增加一层稳定性,您应该导出多个 cookie,并让您的脚本在每次 ping Google 时随机选择其中一个。

        这些 cookie 的有效期很长,因此您无需每天都获取新的 cookie。

        有关在 Python 和 Selenium 中保存和加载 cookie 的帮助,您应该查看以下答案:How to save and load cookies using Python + Selenium WebDriver

        【讨论】:

        • 您好,我刚开始使用cookies;找到 GOOGLE_ABUSE_EXEMPTION cookie 后,您如何使用该特定 cookie?阅读您提供的链接,但这似乎保存了上一个会话的 cookie,而不是我们已经拥有的特定 cookie 值
        • 你好,于娜!该链接显示了如何保存所有 cookie 然后加载它们。我在我的代码中尝试了它,它就像一个魅力。如果您遇到了特定的障碍,请使用您的代码示例打开一个新的 SO 问题并将链接发给我,以便我可以帮助您:)
        【解决方案7】:

        要开始使用 SeleniumPython 客户端,您应该避免解决/绕过 Google CAPTCHA


        Selenium 自动化浏览器。现在,您想用这种能力实现什么完全取决于个人,但主要是为了通过浏览器客户端自动化 Web 应用程序以进行测试,当然不限于此。


        验证码

        另一方面,CAPTCHA(首字母缩写词是...完全自动化的公共图灵测试,以区分计算机和人类...)是一种挑战-响应测试,用于计算以确定用户是否是人类。

        因此,SeleniumCAPTCHA 服务于两个完全不同的目的,理想情况下不应该用于完成任何相互关联的任务。

        话虽如此,reCAPTCHA 可以轻松检测网络流量并将您的程序识别为 Selenium 驱动的 bot


        通用解决方案

        但是,有一些通用方法可以避免在网页抓取时被检测到:


        这个用例

        但是,在几个用例中,我们能够使用 SeleniumreCAPTCHA 进行交互,您可以在以下讨论中找到更多详细信息:


        参考文献

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


        tl;博士

        【讨论】:

        • 您能否详细说明“常规视口”?它指的是什么?
        猜你喜欢
        • 1970-01-01
        • 2018-02-03
        • 1970-01-01
        • 2021-10-07
        • 2022-11-21
        • 2011-10-04
        相关资源
        最近更新 更多