You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby Watir使用时如何避免触发“I'm not a robot”人机验证

可行解决方案如下
  • 补全浏览器启动参数,覆盖默认特征
    你当前只隐藏了自动化控制标识,但默认无头模式的UA、窗口大小、插件等特征仍然会被反爬系统识别,可新增以下启动参数:
    # 替换为对应版本正常桌面Chrome的User-Agent,不要使用默认带Headless标识的UA
    options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36')
    # 模拟正常用户启动浏览器最大化
    options.add_argument('--start-maximized')
    options.add_argument('--disable-gpu')
    options.add_argument('--disable-extensions')
    # 隐藏webdriver相关的其余指纹
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', false)
    
  • 启动后动态修改浏览器检测属性
    初始化浏览器实例后、跳转目标页前,执行JS代码覆盖反爬系统常用的检测字段:
    browser = Watir::Browser.new :chrome, options: options
    browser.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    browser.execute_script("Object.defineProperty(navigator, 'plugins', {get: () => [1, 2, 3]})")
    browser.execute_script("Object.defineProperty(navigator, 'languages', {get: () => ['zh-CN', 'zh', 'en-US', 'en']})")
    # 加1-3秒随机延迟模拟正常用户操作,避免请求频率异常触发验证
    sleep rand(1..3)
    browser.goto(url)
    
  • 替换为去特征的驱动
    标准Selenium驱动本身存在大量固定特征,即使修改参数也容易被识别,可直接使用针对反爬优化的undetected-chromedriver,几乎可以绕过绝大多数基础人机验证触发逻辑。
  • 额外注意事项
    避免使用机房IP访问目标站点,机房IP段通常已被反爬系统标记为高风险,更换为家用宽带IP可大幅降低验证触发概率;如果不是必须使用无头模式,切换为有头模式运行也能减少被检测的概率。

内容的提问来源于stack exchange,提问作者StarMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:15:07