我如何绕过谷歌验证码与 selenium 和Python?

rt4zxlrg  于 2023-01-26  发布在  Python
关注(0)|答案(6)|浏览(334)

如何使用Selenium和Python绕过Google验证码?
当我试着刮东西的时候,Google会给予我一个验证码。我可以用Selenium Python绕过Google验证码吗?
例如,它是Google reCAPTCHA。您可以通过以下链接查看此验证码:https://www.google.com/recaptcha/api2/demo

zz2j4svz

zz2j4svz1#

要开始使用Selenium的 * Python * 客户端,您应该避免解决/绕过Google CAPTCHA
selenium
Selenium自动化浏览器。现在,你想用这种能力实现什么完全取决于个人,但主要是为了测试目的而通过浏览器客户端自动化Web应用程序,粗略地说,它当然不限于此。

验证码

另一方面,CAPTCHA(缩写为 *...... Completely Automated Public Turing test to tell Computers and Humans Apart ...... )是一种挑战-响应测试,用于在计算中确定用户是否是人类。
因此,
Selenium * 和 * CAPTCHA * 服务于两个完全不同的目的,理想情况下不应用于完成任何相互关联的任务。
话虽如此,reCAPTCHA可以轻松检测网络流量,并将您的程序识别为 * Selenium * 驱动的bot

通用溶液

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

  • 网站决定你的脚本/程序的第一个也是最重要的属性是你的显示器大小,所以建议不要使用传统的Viewport
  • 如果您需要向一个网站发送多个请求,请继续更改每个请求的用户代理。在这里,您可以找到有关 * 如何在Selenium中更改Google Chrome用户代理?* 的详细讨论
  • 要模拟 * 类似人类的 * 行为,您可能需要降低脚本执行速度,甚至超过WebDriverWait和expected_conditions引发的time.sleep(secs)。在这里,您可以找到有关 * 如何在Python中使Selenium WebDriver休眠毫秒 * 的详细讨论

此用例

但是,在一些用例中,我们能够使用 * Selenium * 与reCAPTCHA交互,您可以在以下讨论中找到更多详细信息:

    • 如何使用Selenium和Java点击reCAPTCHA *
    • 使用Selenium和VBA Excel的reCAPTCHA检查表的CSS选择器 *
    • 找到reCAPTCHA元素并点击它-Python + Selenium *

参考文献

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

    • 如何通过Python使用GeckoDriver和Firefox使Selenium脚本不可检测?*
    • 是否存在无法检测到的Selenium WebDriver版本?*

时间;日期

    • reCAPTCHA 3如何知道我正在使用Selenium/chromedriver?*
6jjcrrmo

6jjcrrmo2#

为了在抓取Google时绕过验证码,你必须手动破解验证码并导出Google给你的cookie。现在,每次你打开Selenium WebDriver时,确保你添加了你导出的cookie。GOOGLE_ABUSE_EXEMPION cookie是你正在寻找的cookie,但为了安全起见,我会保存所有cookie。
如果你想在你的擦伤中增加一层稳定性,你应该导出几个cookie,并让你的脚本在你每次ping谷歌时随机选择其中一个。
这些Cookie的有效期很长,因此您不需要每天都获取新的Cookie。
要获得关于在Python和Selenium中保存和加载cookie的帮助,请查看以下答案:* 如何使用Python + Selenium WebDriver保存和加载cookie *

am46iovg

am46iovg3#

清除浏览历史记录、缓存数据、Cookie和其他网站数据首先在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();

你不会找到任何拼图或任何东西。

jmo0nnb3

jmo0nnb34#

绕过是解决它还是根本就没得到它?
要解决此问题:

  • 注册2captcha,capmonster cloud,deathbycaptcha,etc.并按照他们的指示操作。他们会给予你一个代币,你通过的形式。

永远得不到:

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

lg40wkob5#

好了,这里有一个简单的python脚本可以帮你解决验证码问题。
它基本上是读取音频,然后使用谷歌助理将其转换为文本并粘贴。
它只适用于音频验证码,这是最常见的情况下与imahe验证码V2
https://github.com/ohyicong/recaptcha_v2_solver
免责声明!
我不写剧本,我只是有这样做的想法,但得到了这个兄弟项目,所以,想帮助别人通过这一点。

vnjpjtjt

vnjpjtjt6#

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

相关问题