我想知道如何使用Selenium和python绕过Google验证码
当我尝试取消Google给我验证码的内容时,我可以使用硒python绕过Google验证码。
例如,它是google recaptha,您可以通过以下链接查看此验证码:https://www.google.com/recaptcha/api2/demo
答案 0 :(得分:0)
要开始使用Selenium的 Python 客户端,您应该避免解决/绕过Google captcha。
Selenium使浏览器自动化。现在,使用这种功能实现的功能完全取决于个人,但主要是为了通过浏览器客户端自动化Web应用程序以进行测试,并且粗略地讲,它当然不限于此。
另一方面,Captcha(缩写为 ...完全自动化的公共Turing测试,以告诉计算机和人类分开... )是一种挑战-响应测试用于计算以确定用户是否为人类。
因此, Selenium 和 Captcha 具有两个完全不同的目的,理想情况下不应用于完成任何相互关联的任务。
话虽如此,recaptcha可以轻松检测网络流量并将您的程序标识为 Selenium 驱动的 BOT 。
但是,有一些通用方法可以避免在抓取网页时被检测到
time.sleep(secs)
的程度。在这里您可以找到有关How to sleep webdriver in python for milliseconds 但是,在几个用例中,我们可以使用 Selenium 与reCAPTCHA进行交互,您可以在以下讨论中找到更多详细信息:
您可以在以下位置找到一些相关的讨论
答案 1 :(得分:0)
为了在抓取Google时绕过验证码,您必须手动解决验证码并导出Google给您的Cookie。现在,每次打开Selenium Webdriver时,请确保添加导出的cookie。 GOOGLE_ABUSE_EXEMPTION cookie是您要寻找的cookie,但是为了安全起见,我会保存所有cookie。
如果您想在剪贴簿中增加一层稳定性,则应该导出多个Cookie,并在每次ping Google时让脚本随机选择其中一个。
这些cookie的有效期很长,因此您不必每天都获取新的cookie。
要获取有关在Python和Selenium中保存和加载Cookie的帮助,您应该查看以下答案:https://stackoverflow.com/a/15058521/1499769
希望这会有所帮助!
答案 2 :(得分:0)
清除浏览历史、缓存数据、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);
然后打开任何使用此代码在复选标记上打勾的网站
String framename=wd.findElement(By.tagName("iframe")).getAttribute("name");
wd.switchTo().frame(framename);
wd.findElement(By.xpath("//span[@id='recaptcha-anchor']")).click();
你不会找到任何拼图或任何东西。
答案 3 :(得分:0)
简单的解决方案是暂停程序 10 秒或更长时间,然后在自动浏览器打开时自行解决 reCAPTCHA,然后程序在 10 秒后启动并执行程序的其余部分,例如点击提交按钮或其他东西