点击上方“Python爬虫与数据挖掘”,进行关注
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
众里寻他千百度。蓦然回首,那人却在,灯火阑珊处。
/1 前言/
昨天其实已经发布了上篇,但是忘记标注原创了,今天继续将其发布出来,与下篇一起给大家,这样大家就可以直接重头看到尾了。这篇文章主要是实战,实现谷歌人机破解具体过程。
/2 实现步骤/
1、既来之则安之,选择了2captcha,就要看看人家的官网啦,如下图所示。
2、嗯...纯英文,我也看不懂..怎么办呢,别着急,我带你们一步一步分析主要功能。首先来登录账号,如下图所示。
3、登录完成后,会自动跳到主页,如下图所示。
上图中第一个红色圈起来的地方表示剩余多少钱,没有钱的话记得要氪金,否则是不能用滴,氪金过程这里就不多做解释了哈,问题不大
第二个红色圈起来的地方表示这是你的唯一key,每次请求要带上这个key的,所以要保管好
4、进入主题,研究文档。点击红色圈的地方,API,一般API都是文档,如下图所示。
5、En....什么玩意..完全看不懂,别慌,往下滑
滑到rates这个目录,我们知道,谷歌人机是ReCaptcha,但是三个呢,到底是哪个呢,我就来带大家看看。
6、首先点击ReCaptcha(oldmethod),这个是老的方法,咱也不知道唉,所以就先看看这个吧,从浅到深嘛,这里呢,我都直接翻译了一下,方便我们观看。
7、Look,人家也说了,旧方法解决ReCaptcha准确率比较低,建议使用新方法,那我们就点击新方法去看看。
8、我们找到了,这种属于ReCaptcha v2验证码,确实和谷歌人机挺一样的,我们来看一下文档是怎么写的。
9、人家说,我们先找到data-sitekey参数,然后将data-sitekey参数提交到https://2captcha.com/in.php,等个15-20s再向https://2captcha.com/res.php获取结果。然后找到id=g-recaptcha-response的textarea标签,将display:none这个css删除,将给我们字符串添加到textarea输入框点击提交,就完成了。
是不是很简单?我们也来试一下。打开谷歌的示例样式,如下图所示。
10、我们打开开发者工具,搜索data-sitekey,可以看到,真的有一个。
11、我们赋值一下这个data-sitekey,并且用代码获取到最后的结果。
12、然后我们找到 id=g-recaptcha-response 的textarea标签,将他的display属性删除。
13、但是有点不太对。
14、Look,下图这个是2captcha的示例的。
我们可以看到,2captcha是个删除display之后,textarea框是直接展示出来的,但是我们删除display之后,基本没用丝毫动静,这...
15、别着急,人家都想到了,我们往下滑滑。
既然我们不能直接显示出来textarea,那就说明我们是隐式的ReCaptcha验证码,其实他的原理呀,也挺简单。
如果你学过一些前端,会些js,你可能就会想到,虽然我看不到这个textarea,但是通过js我们仍然能更改textarea的数据,只是说,我们鼠标点击不了而已,人家也说了,看第一个红圈的位置,通过此js,我们我们就可以把向2captcha获取的值赋值上,第二个圈js是提交表单,其实就是我们人点击提交而已,只不过是js代码帮我们完成了,这样,我们也完成了一个偷天换日。
/3 小试牛刀/
1、好嘞,我们就先来手动搞一下,在上述中,我们已经根据data-sietkey拿到了最后的结果,显然,我们只能通过js完成,那么,我们就试一下。
通过上述gif看到,我们通过js,确实绕过了点击车辆识别了,其他识别,确实方便。
2、但是我们不可能通过人每次这样搞呀,但是因为牵扯到了执行js,所以只能使用selenium,所以,我们来看一下selenium上的效果吧。
Look,这样,我们就针对谷歌人机(ReCaptcha)验证码,完成了自动登录,如果爬取国外的某某网站时,如果遇到了ReCaptcha,我相信一定会对你有帮助。
/4 结语/
本文主要介绍了使用第三方平台(https://2captcha.com/zh?from=8779379)去破解谷歌人机登录,方法有些曲折,但是行之有效。
欢迎大家尝试,消耗在家的无聊时间。本文涉及的代码都上传到了github地址上,后台回复“谷歌人机”四个字即可获取代码。
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
你在家一天主要做点什么呢?