2025年爬虫漫游指南:聊聊极验(Geetest)

爬虫漫游指南:聊聊极验(Geetest)爬虫漫游指南 聊聊极验 Geetest 极验在中国的验证码市场可谓是鼎鼎大名 我甚至见过一些人 一看见滑块点选样式的验证码就说是极验 哪怕图片上印着网易易盾 4 个大字 由此见得 极验赢得了 席梦思 一般的江湖地位 18 岁以前 我一直以为 席梦思

大家好,我是讯享网,很高兴认识大家。

爬虫漫游指南

聊聊极验(Geetest)

极验在中国的验证码市场可谓是鼎鼎大名,我甚至见过一些人,一看见滑块点选样式的验证码就说是极验,哪怕图片上印着网易易盾4个大字。由此见得,极验赢得了“席梦思”一般的江湖地位。(18岁以前,我一直以为“席梦思”==“床垫”,直到有一天我走进了家具市场。)

上至政务类网站国家企业信用信息公示系统,下至娱乐类网站斗鱼战旗龙珠,都可以看到极验的身影。于是,如何绕过极验自然成为了许多爬虫小伙伴不得不面对的问题。本文就来聊一聊,爬虫遇到用极验的网站,该如何是好。

绕过极验的3种方法

以2代极验滑块为例,绕过它无非就是这样的步骤

  • 抓包,了解请求流程
  • 打断点调试JS,逆向分析
  • 还原图片,识别缺口
  • 模拟滑动轨迹
  • 构造请求,获取validate

按照常理,接下来我就要一步步详细阐述各个步骤的具体实现方法,做一个2代极验激活成功教程教程,但我偏不,bite me.

聊这些技术细节的话,一是会触犯不少人的利益,二是指不定还律师函警告,我可不希望被抓走的时候大喊:别抓我,我是逆向工程师。
在这里插入图片描述
讯享网
所以折中一下,聊一些既能解决问题,又不会被抓的方法。

① Selenium等浏览器自动工具

对于一些小规模的数据抓取任务,比如苦逼大学生毕业设计时候遇上了极验的悲剧情况,可以采用selenium或者puppeteer等自动化工具,来手动打掉它的验证码。具体操作如下

  1. 用代码模拟极验出现之前的请求,比如一些cookie的获取,和其他参数的构建;
  2. 带上极验的gt、challenge参数,用puppeteer把验证码弹到你面前,手动把它滑过去或者点过去,得到validate;
  3. 带着你的validate,放心大胆的去抓数据吧。

有灵性的同学想必已经悟到了,这种方法就是把爬虫中的验证码部分单独剥离出来,人工完成,其他部分还是让爬虫自顾自的跑。你只要负责坐在电脑前,不停的拖验证码就行了,你打码越快,爬虫就跑的越快。

② 打电话,摇人

激活成功教程极验,是能挣钱的,能挣钱的事,永远不怕找不到人做。正规一点的,网上大大小小的打码平台也有不少,不正规点的,道上也有几个兄弟接这个活的,可能还比各个平台便宜不少。

但是今年以来,我不止一次碰到打码平台跑路了,官网挂掉,客服失踪,音讯全无的那种。这类的服务总有一丝丝灰色的感觉,要是再撞上诸如南山必胜客这样的律师团队,倒闭是必然的。

方法①呢太费力了,大规模部署是不可能的,方法②呢费钱还费心,连大平台都不能保证寿比南山,遑论一些接私活的小老弟了。所以我最近采用的都是方法③。

③ 2captcha

2captcha也是个打码平台。
嗯???

别别别,大哥把你的40米大刀收起来,听我说完动手不迟。

首先,2captcha是个国外的平台,国内相关政策再怎么变化也不影响他提供服务,多的不说,想想为什么CL1024到现在都绿树长青。

另外,国外打码平台提供极验服务的凤毛麟角,挖到这么一家的真的不容易。

最后,也是最重要的,它!不!贵!

2captcha使用教程

上https://cn.2captcha.com/注册充值这些就不说了,感谢马云爸爸,alipay已经是个世界通用的单词了,不用去折腾VISA,万事达这些鬼东西。

充值完成后,会获得一个API KEY,就是之后调用接口的凭证,不能给别人看到哟。

根据文档,我们只需要发送这样一个GET请求就能让2captcha帮我们打码了:

https://2captcha.com/in.php? key=API KEY& method=geetest& gt=f2ae6cadcf02e1d55e00c& challenge=43b0420ea886ddce2c5a44487b7487f0& pageurl=你看到极验的url& api_server=api-na.geetest.com 

讯享网

解释一下这些参数:

  • key: 刚才的API KEY
  • method: geetest,就是极验,这个网站的拳头产品是谷歌的CAPTCHA,和其他各种国外的验证码,所以需要选择一个验证码类型
  • gt: 极验参数,稍后细讲
  • challenge: 极验参数,稍后细讲
  • pageurl: 上面说了
  • api_server: 我也不知道这个参数干嘛用的,文档说非必须参数,但不填就报错,所以一起塞进请求吧

完后,得到的响应是这样的

讯享网OK| 

OK就是告诉你请求已接收,后面那个就是请求id,过会儿带着这个id去领结果就行了。2captcha的工人们就开始吭哧吭哧的帮你打码了。sleep一小会儿之后,再次发送一个GET请求过去

https://2captcha.com/res.php? key=API KEY& action=get& id= 

就能拿到熟悉而又亲爱的validate了:

讯享网OK|{ "geetest_challenge":"43b0420ea886ddce2c5a44487b7487f0m8", "geetest_validate":"771fc88a865a78d5fe198da9efa8ddbc", "geetest_seccode":"771fc88a865a78d5fe198da9efa8ddbcjordan" } 

拿到这些参数之后,接下来就可以去你想爬的网站为所欲为了。

附:gt和challenge参数的获取

gt参数

极验的gt参数是固定的,和你在2captcha持有的API KEY基本上是一个道理,随便找个有gt参数的请求,复制出来就行了。

challenge参数

challenge参数才是关键所在。每个用极验的网站都有一个专门的链接用于更新challenge参数,比如这个whitepages就是:
https://www.whitepages.com/distil_r_captcha_challenge
抓包找到这个请求,然后重放请求。注意!一定要重放请求再次获取,你抓包抓到的challenge参数已经没有用了!
重放后,得到如下响应

43b0420ea886ddce2c5a44487b7487f0;zh-cn; 

把你需要的东西复制出来,完事儿~

小讯
上一篇 2025-02-11 20:45
下一篇 2025-02-22 13:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/75891.html