对于爬虫来说,一种绕开验证码登录的好办法

2020-02-08 12:33:16 +08:00
 tikazyq

在爬虫开发过程中,经常会遇到验证码的情况,这是反爬过程中相当有门槛的措施,破解成本非常高,需要深度学习、JS 逆向等相关的经验,而且成功率还不一定很高。即使破解成功,如果目标网站换了验证码生成的方法或算法,那么费了九牛二虎之力才成功破解的工作将前功尽弃。因此,破解验证码这种反人类的事情,真的不适合新手。

那么,用什么方法才能够避免验证码,从而完成登录呢?如果一个方法不行( Not working ),我们不要死磕( Stick to it ),我们可以尝试采用绕开的方式( Workaround )。而本文将介绍一种简单可行的绕开验证码的办法,并且实践证明是非常有效的。目前关于这种方法的网上资料并不多,本文将简单介绍一下,权当抛砖引玉。

文章链接: 地址

9849 次点击
所在节点    程序员
76 条回复
locoz
2020-02-08 19:53:25 +08:00
@ipwx #37 这种操作本质上是“人工登录”而不是“人工打码”,区别挺大的。“人工登录”其实也没有啥运营成本,日常使用时自然而然地就把 session 有效期给刷新了。而大部分网站 /APP 只处于登录状态,不很高频的操作的话是不会在后续出现验证码的。

公司项目方面我在#15 举的例子可以看看;
个人项目的话,使用这种操作实际上比写自动登录更省时省心,毕竟自动登录实际上还会碰到页面改版、更换验证码、添加校验参数、偷偷对使用低版本接口登录的帐号降权等各种问题。而登录一出岔子后面的操作很可能就全都报废了,跟着更新花的时间根据难度的不同,花个十几二十分钟甚至几天都有可能,但“人工登录”几十秒就能解决问题。
locoz
2020-02-08 19:56:36 +08:00
@ipwx #40 😂加密算法自更新和动态混淆了解一下,大厂和专业的验证码 /风控厂商已经逐渐开始玩这种操作了。
kenvix
2020-02-08 21:00:37 +08:00
?但凡写爬虫需要写登录处理验证码的,都是您老这种方法完全不能用的情况
AX5N
2020-02-08 21:03:17 +08:00
这个技术极其简单,也许有用,但你写的废话太多。就不能抓住重点,几句话说完么。
jziwenchen
2020-02-08 21:05:09 +08:00
没试试对接打码平台 API ?
whoami9894
2020-02-08 21:09:00 +08:00
@tikazyq #31

> 不知道有不有相关的大佬会看到这篇文章回去升级登录验证方式的,例如用 JWT

建议先搞清楚 jwt 是什么。
而且,用这种方式绕过登录并不代表网站的验证方式有问题,和浏览器正常访问完全相同的 HTTP 报文服务器怎么区分? (不考虑请求频率

你说的这种方式确实有用,比如我不想花时间破解验证码,只想用程序批量获取登录后数据时。但你煞有介事的发个帖,给我的感觉就是半瓶子晃荡
tikazyq
2020-02-08 21:13:06 +08:00
@whoami9894 对这种评论我也只有 no comment 😷
tikazyq
2020-02-08 21:14:13 +08:00
@AX5N 对于懂的人来说可能都不用说,不懂的人需要大量篇幅
tikazyq
2020-02-08 21:19:15 +08:00
@jziwenchen 确实打码平台是一种办法
mengminggo
2020-02-08 21:35:44 +08:00
薛定谔的 cookie
i0error
2020-02-08 21:38:06 +08:00
@tikazyq #31 非 wexin 打开似乎不计算阅读量
tikazyq
2020-02-08 21:44:25 +08:00
@i0error 即使如此,我估计看完文章的也没几个
ooops
2020-02-08 21:44:59 +08:00
教程发错地方了,这里不是你文章的受众。标题也起的确实不合适,我承认我是被骗进来的
yoshiyuki
2020-02-08 21:45:30 +08:00
确实可行,是一种半手动介入,降级完成爬虫的方法

诸君嘲讽大可不必,楼主表述有一定不准确的地方,只表达“绕过”验证码,但是没有在标题、摘要等地方明确指出是人工操作、自动化程度降低的。
tabris17
2020-02-08 21:46:26 +08:00
问:如何绕过“全自动区分计算机和人类的公开图灵测试”(CAPTCHA)?
答:雇个人手动去验证嘛
locoz
2020-02-08 21:52:15 +08:00
@i0error #51
@tikazyq #52
非微信打开不记展示阅读量,但是后台在群发分析里可以看到有个“其他”渠道,那个是包含了外站打开的阅读量的。
tikazyq
2020-02-08 21:55:10 +08:00
@locoz 明天空了看看😁
locoz
2020-02-08 21:55:47 +08:00
@jziwenchen #45 打码平台只能解决验证码,对于加密参数难搞 / 风控严格的情况没用的。(实际上很多不会逆向或者逆向水平比较差的人碰到的主要问题不是验证码而是后两个
tikazyq
2020-02-08 21:56:06 +08:00
@ooops 确实,下次要在摘要中把思路也说了
murmur
2020-02-08 21:56:54 +08:00
cookie 也会出问题的,在大概不知道多少年前我们就用 cookie 抓新浪微博,然而每天都有无数的账号触发手机验证
真当反扒是吃素的啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/642950

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX