V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pureGirl
V2EX  ›  程序员

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

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

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

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

    现在在搞文字和图像识别的类型,这 2 类感觉比较难。
    silencelixing
        31
    silencelixing  
       184 天前
    @marcolin18 #23 #23 能给一个成功的例子/prompt 吗 就针对楼里面的这张验证码
    JohnYep
        32
    JohnYep  
       184 天前


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

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

    感觉这样频繁调用 ocr 有点费 orc
    forty
        33
    forty  
       184 天前
    滑块的,一般是先录制几百个手工轨迹。
    顺序点击几个文字的,ai 识别目前也不是很理想.

    我遇到 X 的验证,出个题,给几个答案图,要你选择正确的答案。题目和答案图是基于模板随机生成的。
    比如,题目:选择有 3 个石头的图,答案图里是石头混合其它物品,其中 1 个图里的石头刚好 3 个就是你要选的。
    pkoukk
        34
    pkoukk  
       184 天前
    @evan9527 十年前就有,给游戏工作室的挂机脚本过验证的
    Wyearn
        35
    Wyearn  
       184 天前
    @JohnYep #11 这个可以通过大模型训练,可以自动选择的。
    shiny
        36
    shiny  
       184 天前
    现在人机识别也有不少基于机器学习的。变成了 AI 大战
    daysv
        37
    daysv  
       184 天前
    @JohnYep ocr 服务自己的随便调,另外定位文字坐标不需要 ocr , 定位好了后才切片 ocr 。
    zzl22100048
        38
    zzl22100048  
       184 天前
    @JohnYep #11 这种匹配类的验证码用 目标检测+相似度,不要把它当文字
    yumizhao888
        39
    yumizhao888  
       184 天前
    这些都是钱,搞定了搞成接口给别人调用,以前是 1000 个 10 块钱左右。
    marcolin18
        40
    marcolin18  
       184 天前
    @silencelixing 我好像回不了图片和太长的文字,v 站新号。
    quantum00549
        41
    quantum00549  
       184 天前
    @pureGirl 收到通知就赶紧去手动处理下😄
    JensenQian
        42
    JensenQian  
       184 天前
    经典的小老鼠吃奶酪
    [img][/img]
    marcolin18
        43
    marcolin18  
       184 天前
    @yumizhao888 #39 人工打码目前来说确实还是相对有效便宜的。
    shinsekai
        44
    shinsekai  
       184 天前
    比如人工分布式验证?
    JohnYep
        45
    JohnYep  
       184 天前
    @zzl22100048 #38 找不道好的思路
    gauthier
        46
    gauthier  
       184 天前
    滑块还算比较简单了,用深度学习整个小模型识别缺口位置。指针滑动我还真不知道咋整,我搞过的有漏洞,速度快就能成了。
    zzl22100048
        47
    zzl22100048  
       184 天前
    @JohnYep #45
    这验证码是工信部的吧
    github 上有人训练好了
    yjfkk
        48
    yjfkk  
       184 天前
    没有,斗不过大公司,他们有整个团队。
    可以换个思路,爬虫一般在浏览器启动的时候,不新启浏览器,可以用登录浏览器实例进行爬取。我用 playwright 框架有 https://playwright.dev/python/docs/api/class-browser#browser-new-browser-cdp-session 方法,缺点是无法大批量执行。
    buerle
        49
    buerle  
       184 天前
    通过 puppeteer nginx 代理注入自动化 js ,提前分析获取滑块背景图 & 滑块图片,拿到图片通过 API 接口,提交图片 opencv 的库(网上应该有案例)的服务去匹配图片需要移动坐标的位置。之前开过 1000+的账号实例测试,验证过效果应该还行。
    JohnYep
        50
    JohnYep  
       184 天前
    @zzl22100048 #47 是的确实是工信部的,github 上有吗,我咋没找到呢
    luzihang
        51
    luzihang  
       184 天前
    图鉴买个模型服务,解决
    luzihang
        52
    luzihang  
       184 天前
    或者自研模型,和 gpt 一个逻辑。买 api 还是自己训练模型
    ducuducu
        53
    ducuducu  
       184 天前
    ui 自动化
    Blanke
        54
    Blanke  
       183 天前
    只说滑块,其他研究得少。缺口很容易,一般 opencv 就行,主要是参数加密,思路是逆向,分析参数,有些不是轨迹有问题,而是环境,大部分后端都是综合判断,猜测是 ai 或模型判断。分析所有参数后,可以还原算法或者 rpc 配合等。比如 ali tx007 jiyan 等都能按这个思路搞。
    SuperXX
        55
    SuperXX  
       183 天前 via iPhone
    昨天碰到 EPICGAME 的滑动验证码, 请在下面 9 个图像中选择出价格最贵的….
    pureGirl
        56
    pureGirl  
    OP
       183 天前
    @yjfkk 试了一下也不太行,登录过了,后面还是会有验证
    yjfkk
        57
    yjfkk  
       183 天前
    @pureGirl ai 投入太大,长期数据才值得投入研究,短期的就搞个通知,人工通过验证,然后用 UI 自动化在页面上操作。
    yjfkk
        58
    yjfkk  
       176 天前
    来挖坟,看到一个解决方案,需要花钱: https://2captcha.com/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3135 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:44 · PVG 21:44 · LAX 05:44 · JFK 08:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.