367 字
2 分钟
Puppeteer中级伪装:绕过 navigator.webdriver 验证

问题描述#

在使用 Puppeteer 进行自动化操作时,当访问 Bing 等网站时,系统会触发真人验证机制,导致无法正常完成自动化任务。这是因为网站通过检测 navigator.webdriver 属性识别出了自动化浏览器。

解决方案:中级伪装技术#

使用 puppeteer-extra-plugin-stealth 插件#

puppeteer-extra-plugin-stealth 是一个专门用于隐藏 Puppeteer 自动化特征的强大插件。它能够:

  • navigator.webdriver 属性设置为 undefined
  • 修改其他可能暴露自动化身份的浏览器属性
  • 提供多层伪装,有效规避网站检测

实施步骤#

1. 安装必要依赖#

Terminal window
npm install puppeteer-extra puppeteer-extra-plugin-stealth

2. 代码实现#

const puppeteer = require('puppeteer');
// 替换原有的 puppeteer 引入方式 const puppeteer = require('puppeteer');
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
// 应用 stealth 插件
puppeteer.use(StealthPlugin());
// 其余代码保持不变

优势说明#

使用此方案的优势: 简单易用:只需几行代码即可实现伪装 效果显著:能够绕过大多数网站的自动化检测 持续更新:插件会持续更新以应对新的检测手段 功能完整:不仅处理 navigator.webdriver,还处理其他可能的检测点

注意事项#

虽然此方案能够有效绕过大部分检测,但请注意: 遵守目标网站的 robots.txt 规则 不要用于恶意爬取或攻击行为 合理控制访问频率,避免对目标服务器造成压力

Puppeteer中级伪装:绕过 navigator.webdriver 验证
https://blog.wilii.cn/posts/puppeteer-extra/
作者
Sean
发布于
2025-08-27
许可协议
CC BY-NC-SA 4.0