爬虫时有什么办法处理滑块验证等验证方法吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
pureGirl
V2EX    程序员

爬虫时有什么办法处理滑块验证等验证方法吗

  •  
  •   pureGirl 2024-05-27 09:15:02 +08:00 8041 次点击
    这是一个创建于 500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    58 条回复    2024-06-04 09:56:14 +08:00
    zealotxxxx
        1
    zealotxxxx  
       2024-05-27 09:20:32 +08:00
    ddddocr
    quantum00549
        2
    quantum00549  
       2024-05-27 09:20:37 +08:00
    以前用 selenium 时做过 yolo 定位检测, 然后模拟拖动鼠标, 拖动轨迹还得是变加速轨迹啥的, 但是很快发现废了半天劲, 人家滑块验证进化了, 继续投入就是无底洞, 最后的方案就是遇到滑块验证就给人发个邮件
    feiniu
        3
    feiniu  
       2024-05-27 09:22:34 +08:00
    这个滑动轨迹很难整
    DingJZ
        4
    DingJZ  
       2024-05-27 09:22:35 +08:00
    有一些云平台的,调用他们的 api
    flowerains
        5
    flowerains  
       2024-05-27 09:28:40 +08:00
    这个问题我也挺想知道的,最近很多内部系统都升级了

    不是滑块就是拼图的,整得我写程序都蓝瘦的一批
    pureGirl
        6
    pureGirl  
    OP
       2024-05-27 09:29:13 +08:00
    @quantum00549 发邮件是什么方法
    feiniu
        7
    feiniu  
       2024-05-27 09:43:20 +08:00
    发邮件是吧滑块的链接通过邮件发送给某个人,让他手动滑一下吧
    garlics
        8
    garlics  
       2024-05-27 09:47:58 +08:00
    花钱找人工打码平台
    shadowyue
        9
    shadowyue  
       2024-05-27 09:48:28 +08:00   1
    这种交互性验证都不太好处理。我在拼多多遇到过更逆天的,一个 3d 的骰子让你自己旋转按顺序点击上面的文字太逆天了
    JohnYep
        10
    JohnYep  
       2024-05-27 09:52:02 +08:00
    JohnYep
        11
    JohnYep  
       2024-05-27 09:53:10 +08:00
    这种怎么弄呢
    burymme11
        12
    burymme11  
       2024-05-27 09:53:59 +08:00
    时应该没有吧,当时用 selenium 算坐标,模拟试了很久,匀速,加速度,定时卡顿,各种行为都模拟了,就是不行,偶尔成一次两次,无法稳定。
    daliusu
        13
    daliusu  
       2024-05-27 09:55:12 +08:00
    不是有人工验证码平台吗?我记得十几年前我做游戏脚本就有这种,但是还是人工输文字,现在没支持拖拽么
    cnfox
        14
    cnfox  
       2024-05-27 09:58:54 +08:00
    超级鹰之类的 。传给他们图片他们会返回为止 ,然后驱动浏览器内核模拟滑动区块。这是我们之前的解决方案
    cnfox
        15
    cnfox  
       2024-05-27 09:59:14 +08:00
    @cnfox #14 返回滑动距离之类的
    ZnductR0MjHvjRQ3
        16
    ZnductR0MjHvjRQ3  
       2024-05-27 10:04:15 +08:00
    你可以给图片抓出来 然后发给 gpt-4o 来处理,或者直接用三方,还有一个最笨的办法,将大量的滑块写死做成本地数据然后遇到了就去搜,没有就刷新,不过这种办法现在应该不是那么好用了
    ddczl
        17
    ddczl  
       2024-05-27 10:06:54 +08:00
    就是猫鼠游戏,在便捷性和成本上做取舍,现在我们公司大多数情况是发消息,无论是邮件还是短信。
    flyv2x
        18
    flyv2x  
       2024-05-27 10:13:07 +08:00
    @zealotxxxx 这个 ocr 还不错哦
    Solix
        19
    Solix  
       2024-05-27 10:18:04 +08:00
    尝试用 gpt-4o+鼠标控制+图片取帧+坐标控制来试试
    silencelixing
        20
    silencelixing  
       2024-05-27 10:26:25 +08:00
    @Motorola3
    @gaobh
    我给 4o 识别了一下楼里面的验证码所包含的文字,根本识别不出来,乱答一通,所以 4o 的方案不可行。

    marcolin18
        21
    marcolin18  
       2024-05-27 10:27:54 +08:00
    1. 在 github 上有很多基于 playwright 的滑动验证的实现,你可以看一下找找思路;
    2. 如楼上 @Motorola3 所说,结合 LLM 来处理,prompt 提示类似 “这是一张验证码图片,请帮助识别验证码类型并给出基于 XXX 的解决代码。图片的 base64 编码如下 {base64_image}”,约束解决方案,比如返回一段基于 playwright 的代码,加载环境运行。这个方案要做的丝滑可能需要打通比较多的步骤,没有基础和时间可以做了解即可。
    daysv
        22
    daysv  
       2024-05-27 10:28:30 +08:00
    @JohnYep 做过,不麻烦, 下面 ocr 识别文字, 上面先定位坐标,再切图,再处理,再识别, 之后再比对。
    还有一种是成语之类的, 就是先获取 4 个文字,然后统一多条件查找词典,找到后按权重最高的进行顺序点击。
    marcolin18
        23
    marcolin18  
       2024-05-27 10:33:23 +08:00
    @silencelixing 你给的 prompt 的问题,你要遵循一些原则。 给它完整的图片,包含验证码要求,要求它输出解决代码示例。
    JohnYep
        24
    JohnYep  
       2024-05-27 10:39:12 +08:00
    @daysv #22 有类似的案例吗
    firefox12
        25
    firefox12  
       2024-05-27 10:48:56 +08:00
    服务器端是如何验证你的滑动操作的? 有人说下吗?这个是关键啊。
    daysv
        26
    daysv  
       2024-05-27 10:55:35 +08:00
    @JohnYep 只能说生产在运行,3 次内基本都能成功
    ZnductR0MjHvjRQ3
        27
    ZnductR0MjHvjRQ3  
       2024-05-27 10:56:41 +08:00
    @silencelixing 你这种可以直接找第三方 看你这个验证码大概率是国内平台了 国内有很多平台做的 我之前用过的是极验好像
    LieEar
        28
    LieEar  
       2024-05-27 11:02:44 +08:00
    @firefox12 我之前了解的是校验滑动的距离,还有些高级的会校验轨迹(人手滑动的不是匀速)
    evan9527
        29
    evan9527  
       2024-05-27 11:07:58 +08:00
    有没有这种生意?把全世界的各种真人验证集合在一起,雇人一天 8 小时就是做各种真人验证。
    xuminzhong
        30
    xuminzhong  
       2024-05-27 11:09:33 +08:00
    滑块验证 算是比较简单一种,我们已经有处理过几个这样的网站,抖音、京东、小红书都行,
    成功率在 95%以上,反而重试 1 、2 次肯定能成功。

    现在在搞文字和图像识别的类型,这 2 类感觉比较难。
    silencelixing
        31
    silencelixing  
       2024-05-27 11:42:19 +08:00
    @marcolin18 #23 #23 能给一个成功的例子/prompt 吗 就针对楼里面的这张验证码
    JohnYep
        32
    JohnYep  
       2024-05-27 11:43:01 +08:00


    @daysv #26 试了一下感觉步骤还是有点繁琐

    1 、先识别最底下的四个汉字 [音,过,读,饭]
    2 、将上面的图片切片成小方块,缩小方块范围动态控制例如 [50*50]
    3 、识别小方块是否有汉字,有就找出对应的坐标,依次找出 [音,过,读,饭]
    4 、重复第二步骤改变切割的方块大小 [35*40] ,重新切重新识别
    5 、反复 2 、3 、4 流程直到找到所有的汉字以及对应的坐标结束流程

    感觉这样频繁调用 ocr 有点费 orc
    forty
        33
    forty  
       2024-05-27 11:45:02 +08:00
    滑块的,一般是先录制几百个手工轨迹。
    顺序点击几个文字的,ai 识别目前也不是很理想.

    我遇到 X 的验证,出个题,给几个答案图,要你选择正确的答案。题目和答案图是基于模板随机生成的。
    比如,题目:选择有 3 个石头的图,答案图里是石头混合其它物品,其中 1 个图里的石头刚好 3 个就是你要选的。
    pkoukk
        34
    pkoukk  
       2024-05-27 11:49:59 +08:00
    @evan9527 十年前就有,给游戏工作室的挂机脚本过验证的
    Wyearn
        35
    Wyearn  
       2024-05-27 12:17:15 +08:00
    @JohnYep #11 这个可以通过大模型训练,可以自动选择的。
    shiny
        36
    shiny  
       2024-05-27 12:30:54 +08:00
    现在人机识别也有不少基于机器学习的。变成了 AI 大战
    daysv
        37
    daysv  
       2024-05-27 13:26:49 +08:00
    @JohnYep ocr 服务自己的随便调,另外定位文字坐标不需要 ocr , 定位好了后才切片 ocr 。
    zzl22100048
        38
    zzl22100048  
       2024-05-27 14:43:36 +08:00
    @JohnYep #11 这种匹配类的验证码用 目标检测+相似度,不要把它当文字
    yumizhao888
        39
    yumizhao888  
       2024-05-27 14:50:01 +08:00
    这些都是钱,搞定了搞成接口给别人调用,以前是 1000 个 10 块钱左右。
    marcolin18
        40
    marcolin18  
       2024-05-27 15:23:09 +08:00
    @silencelixing 我好像回不了图片和太长的文字,v 站新号。
    quantum00549
        41
    quantum00549  
       2024-05-27 15:30:57 +08:00
    @pureGirl 收到通知就赶紧去手动处理下
    JensenQian
        42
    JensenQian  
       2024-05-27 15:31:46 +08:00
    经典的小老鼠吃奶酪
    [img][/img]
    marcolin18
        43
    marcolin18  
       2024-05-27 15:32:55 +08:00
    @yumizhao888 #39 人工打码目前来说确实还是相对有效便宜的。
    shinsekai
        44
    shinsekai  
       2024-05-27 15:34:08 +08:00
    比如人工分布式验证?
    JohnYep
        45
    JohnYep  
       2024-05-27 15:35:55 +08:00
    @zzl22100048 #38 找不道好的思路
    gauthier
        46
    gauthier  
       2024-05-27 15:36:58 +08:00
    滑块还算比较简单了,用深度学习整个小模型识别缺口位置。指针滑动我还真不知道咋整,我搞过的有漏洞,速度快就能成了。
    zzl22100048
        47
    zzl22100048  
       2024-05-27 15:46:44 +08:00
    @JohnYep #45
    这验证码是工信部的吧
    github 上有人训练好了
    yjfkk
        48
    yjfkk  
       2024-05-27 16:15:37 +08:00
    没有,斗不过大公司,他们有整个团队。
    可以换个思路,爬虫一般在浏览器启动的时候,不新启浏览器,可以用登录浏览器实例进行爬取。我用 playwright 框架有 https://playwright.dev/python/docs/api/class-browser#browser-new-browser-cdp-session 方法,缺点是无法大批量执行。
    buerle
        49
    buerle  
       2024-05-27 18:32:53 +08:00
    通过 puppeteer nginx 代理注入自动化 js ,提前分析获取滑块背景图 & 滑块图片,拿到图片通过 API 接口,提交图片 opencv 的库(网上应该有案例)的服务去匹配图片需要移动坐标的位置。之前开过 1000+的账号实例测试,验证过效果应该还行。
    JohnYep
        50
    JohnYep  
       2024-05-27 19:42:46 +08:00
    @zzl22100048 #47 是的确实是工信部的,github 上有吗,我咋没找到呢
    luzihang
        51
    luzihang  
       2024-05-27 19:51:08 +08:00
    图鉴买个模型服务,解决
    luzihang
        52
    luzihang  
       2024-05-27 19:51:37 +08:00
    或者自研模型,和 gpt 一个逻辑。买 api 还是自己训练模型
    ducuducu
        53
    ducuducu  
       2024-05-27 20:05:23 +08:00
    ui 自动化
    Blanke
        54
    Blanke  
       2024-05-27 23:17:40 +08:00
    只说滑块,其他研究得少。缺口很容易,一般 opencv 就行,主要是参数加密,思路是逆向,分析参数,有些不是轨迹有问题,而是环境,大部分后端都是综合判断,猜测是 ai 或模型判断。分析所有参数后,可以还原算法或者 rpc 配合等。比如 ali tx007 jiyan 等都能按这个思路搞。
    SuperXX
        55
    SuperXX  
       2024-05-28 05:51:12 +08:00 via iPhone
    昨天碰到 EPICGAME 的滑动验证码, 请在下面 9 个图像中选择出价格最贵的….
    pureGirl
        56
    pureGirl  
    OP
       2024-05-28 10:02:25 +08:00
    @yjfkk 试了一下也不太行,登录过了,后面还是会有验证
    yjfkk
        57
    yjfkk  
       2024-05-28 11:06:15 +08:00
    @pureGirl ai 投入太大,长期数据才值得投入研究,短期的就搞个通知,人工通过验证,然后用 UI 自动化在页面上操作。
    yjfkk
        58
    yjfkk  
       2024-06-04 09:56:14 +08:00
    来挖坟,看到一个解决方案,需要花钱: https://2captcha.com/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2808 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 13:09 PVG 21:09 LAX 06:09 JFK 09:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86