V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cxbeat
V2EX  ›  问与答

关于滑动验证码对浏览器的识别

  •  2
     
  •   cxbeat · 2020-10-06 11:07:35 +08:00 · 2907 次点击
    这是一个创建于 1505 天前的主题,其中的信息可能已经有所发展或是发生改变。
    爬虫萌新,大佬请轻喷
    最近想用 Python 写了一个投票脚本,奈何获取 cookie 的时候发现滑动验证码(是一家叫做同盾科技的)可以识别到是否是 bot 操作
    具体表现为:用正常浏览器打开可以正常完成滑动验证,用 selenium 打开后可以滑动(同样为手动操作)但显示验证失败。
    想问问各路大佬有没有遇到过这种比较高级的反爬?有什么破解方法吗?已经改了 user-agent,似乎没有起到成效。用 selenium 的时候尝试了 chrome 和 firefox,都不行。
    第 1 条附言  ·  2020-10-07 15:14:29 +08:00

    结案了,感谢各位的帮助!下面附上我使用的配置:

    options = webdriver.ChromeOptions()
    options.add_argument("--disable-blink-features")
    options.add_argument("--disable-blink-features=AutomationControlled")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options=options)
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36'})
    print(driver.execute_script("return navigator.userAgent;"))
    

    来源:@JmmBite 贴出的 https://stackoverflow.com/questions/53039551/selenium-webdriver-modifying-navigator-webdriver-flag-to-prevent-selenium-detec/53040904
    12 条回复    2020-10-07 15:15:44 +08:00
    crab
        1
    crab  
       2020-10-06 11:28:47 +08:00
    只能对比两组数据的差异。
    alan0liang
        2
    alan0liang  
       2020-10-06 12:15:41 +08:00 via Android   ❤️ 1
    lichdkimba
        3
    lichdkimba  
       2020-10-06 12:22:09 +08:00   ❤️ 2
    這個可能會非常難 畢竟人家就是專門搞這個驗證碼的
    h503mc
        4
    h503mc  
       2020-10-06 13:02:10 +08:00
    被 window.navigator.webdriver 挡了
    None123
        6
    None123  
       2020-10-06 14:28:24 +08:00
    用 puppeteer
    xiaojie668329
        7
    xiaojie668329  
       2020-10-06 14:35:07 +08:00 via iPhone
    识别到你的浏览器是自动的,需要修改一些参数。
    cxbeat
        8
    cxbeat  
    OP
       2020-10-06 16:42:05 +08:00
    @crab 看请求头都是一样的,其他的就不清楚了

    @alan0liang
    @JmmBite 谢谢


    @None123 因为个人技术原因暂时不想上无头浏览器,不过还是谢谢
    DoctorCat
        9
    DoctorCat  
       2020-10-07 00:43:09 +08:00
    lz 最终成功了么?
    locoz
        10
    locoz  
       2020-10-07 07:16:11 +08:00 via Android
    浏览器在被自动化测试工具控制时会调整一些标识,可以被用 js 取到值,所以人家就能检测了,搜索引擎上搜一下然后按着替换掉就好了。( puppeteer 也一样的)
    这种属于比较常规的操作,你后面还会碰到鼠标轨迹识别的问题,会更麻烦一些,搞不定的话建议直接上打码平台,毕竟投票脚本这种东西应该也不常用?
    cxbeat
        11
    cxbeat  
    OP
       2020-10-07 09:52:32 +08:00
    @locoz 现在看来应该是这个问题。验证码的话准备自己手动来划了,帐号量不大。谢谢思路。
    cxbeat
        12
    cxbeat  
    OP
       2020-10-07 15:15:44 +08:00
    @DoctorCat 成功了,请看 append
    @JmmBite 帮大忙了,再次感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1025 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.