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

使用Puppeteer爬虫时遭遇403 Forbidden错误的解决方法

解决Puppeteer提交表单后跳转403 Forbidden的问题

403错误通常是网站的反爬机制识别出了自动化工具,以下是针对性的解决方案:

必要依赖安装

首先安装用于绕过指纹检测的插件:

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

修改后的代码示例

const puppeteer = require('puppeteer');
const puppeteerExtra = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');

// 启用stealth插件隐藏自动化特征
puppeteerExtra.use(StealthPlugin());

(async () => {
  const browser = await puppeteerExtra.launch({
    headless: false,
    defaultViewport: null,
    args: [
      '--no-sandbox',
      '--disable-setuid-sandbox',
      '--disable-blink-features=AutomationControlled' // 禁用自动化控制标记
    ]
  });

  const page = await browser.newPage();

  // 设置真实浏览器的请求头,避免被识别为爬虫
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
  await page.setExtraHTTPHeaders({
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Referer': 'https://registrantsearch.reco.on.ca/'
  });

  // 导航到表单页面,等待网络完全空闲
  await page.goto('https://registrantsearch.reco.on.ca/', {
    waitUntil: 'networkidle2'
  });

  // 模拟人类输入节奏,添加延迟
  await page.type('#l-name', 'Malik', { delay: 100 });

  // 短暂等待后再点击提交,模拟真实操作间隔
  await page.waitForTimeout(500);

  // 点击提交并等待页面跳转,指定等待网络空闲
  await Promise.all([
    page.click('#searchSalesperson'),
    page.waitForNavigation({ waitUntil: 'networkidle2' })
  ]);

  // 获取跳转后页面内容
  const nextPageContent = await page.content();
  console.log('跳转后页面内容:', nextPageContent);

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

关键修改说明

  • 隐藏自动化特征:通过stealth插件和禁用AutomationControlled标记,避免网站检测到Puppeteer的自动化属性。
  • 模拟真实请求头:替换默认的Puppeteer用户代理,补充常见请求头,让请求更接近真实浏览器行为。
  • 调整操作节奏:添加输入延迟和点击前等待,模拟人类操作的间隔,避免触发频率检测。
  • 优化页面等待策略:使用networkidle2确保页面和资源完全加载后再执行下一步操作。

内容的提问来源于stack exchange,提问作者Shahzad Malik Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:26:30