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

如何使用Node.js/TypeScript+pnpm的Playwright绕过reCAPTCHA?

解决Playwright提交带reCAPTCHA表单的错误及依赖安装问题

一、先解决playwright-recaptcha-solver安装失败的问题

如果用pnpm/npm直接安装报错,试试这些办法:

  • 临时关闭严格依赖检查:执行pnpm install playwright-recaptcha-solver --strict-peer-dependencies false,部分依赖冲突问题能缓解
  • 手动克隆源码安装:
    1. 把仓库源码克隆到本地项目的./packages/playwright-recaptcha-solver目录
    2. 进入该目录执行pnpm install安装依赖
    3. 在项目的package.json中添加本地依赖:"playwright-recaptcha-solver": "file:./packages/playwright-recaptcha-solver"
  • 查仓库Issues:看看该库有没有未修复的安装bug,或者其他用户分享的临时修复方案

二、替代方案:绕过reCAPTCHA的其他方法

1. 使用第三方验证码服务(推荐)

像2Captcha、DeathByCaptcha这类服务提供API接口,能自动识别reCAPTCHA并返回验证token,直接填充到页面即可。示例TypeScript代码:

import { chromium } from 'playwright';
import TwoCaptcha from '2captcha';

const solver = new TwoCaptcha('你的API密钥');

(async () => {
  const browser = await chromium.launch({ headless: 'new' });
  const page = await browser.newPage();
  await page.goto('目标表单URL');

  // 获取reCAPTCHA的site key
  const siteKey = await page.getAttribute('iframe[src*="recaptcha"]', 'data-sitekey');
  if (!siteKey) throw new Error('未找到reCAPTCHA site key');

  // 调用API求解
  const solveResult = await solver.recaptcha(siteKey, page.url());

  // 填充验证token到页面
  await page.evaluate((token) => {
    const responseEl = document.getElementById('g-recaptcha-response');
    if (responseEl) {
      responseEl.innerHTML = token;
      // 触发reCAPTCHA的验证回调
      window.grecaptcha?.execute();
    }
  }, solveResult.data);

  // 提交表单
  await page.click('button[type="submit"]');

  await browser.close();
})();

2. 模拟人类行为降低检测风险

reCAPTCHA会识别自动化工具的特征,调整Playwright配置让行为更接近真实用户:

  • 用新版无头模式:await chromium.launch({ headless: 'new' }),比旧版无头更难被检测
  • 增加随机操作延迟:在点击、输入等操作前加await page.waitForTimeout(Math.random() * 1200 + 600);
  • 设置真实用户代理:从你的Chrome/Firefox复制UA字符串,用await page.setUserAgent('你的UA字符串')
  • 启用浏览器权限:创建上下文时添加权限,比如const context = await browser.newContext({ permissions: ['geolocation'] });

3. 申请测试环境白名单

如果是测试自己开发的网站,直接找管理员添加测试IP白名单,或者搭建跳过reCAPTCHA的测试环境,这是最合规且稳定的办法

注意事项

  • 绕过reCAPTCHA可能违反目标网站的服务条款,使用前务必确认合规性
  • 第三方验证码服务需要付费,且存在被网站检测到的风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:03:47