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

非无头模式Puppeteer被Re-Captcha识别为bot,求适配非无头的同类隐身插件

非无头模式Puppeteer被reCAPTCHA标记为机器人的解决方案

你提到认为puppeteer-extra-plugin-stealth仅适配无头模式,这是常见误解,该插件本身同时支持无头、非无头两种运行模式,可直接在非无头场景下使用。

核心问题排查

你遇到的拦截差异本质来源于Puppeteer默认调用的Chromium和你日常使用的正式版Chrome的指纹差异,以及浏览器暴露的自动化运行标识,按以下步骤调整即可大幅降低拦截概率:

  • 不要使用Puppeteer默认绑定的Chromium,改为调用本地安装的正式版Chrome可执行文件,reCAPTCHA对Chromium的默认指纹容忍度极低,正式版Chrome自带的安全组件、数字签名、媒体解码库都是绕过检测的必要条件
  • 启动时强制移除自动化标记,添加参数--disable-blink-features=AutomationControlled,这会删除浏览器层面暴露的自动化运行标识
  • 启动时指定本地真实的Chrome用户配置目录,不要每次启动都生成全新的无痕上下文,带有正常浏览历史、Cookie、常用插件的配置文件会大幅降低reCAPTCHA的拦截概率

参考配置代码

const puppeteer = require('puppeteer-extra')
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())

;(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    // 替换为本地Chrome的实际安装路径
    executablePath: 'C:/Program Files/Google/Chrome/Application/chrome.exe',
    // 替换为本地Chrome用户配置目录的路径,可在Chrome地址栏输入chrome://version查看
    userDataDir: 'C:/Users/你的用户名/AppData/Local/Google/Chrome/User Data',
    args: [
      '--disable-blink-features=AutomationControlled',
      '--start-maximized'
    ],
    // 关闭默认的自动化控制提示条
    ignoreDefaultArgs: ['--enable-automation']
  })
  const page = await browser.newPage()
  // 后续写入你的业务逻辑代码
})()

额外优化措施

  • 模拟用户真实操作:点击「我不是机器人」复选框前,添加随机延迟、模拟短距离鼠标移动轨迹,不要直接调用page.click()触发点击
  • 不要禁用浏览器的JavaScript、Cookie、WebGL等功能,这些都是reCAPTCHA指纹检测的必要项
  • 若仍出现高强度验证,可在启动后手动先访问几个常规网站,产生正常的浏览行为痕迹后再访问目标站点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:39:01