367 字
2 分钟
Puppeteer中级伪装:绕过 navigator.webdriver 验证
问题描述
在使用 Puppeteer 进行自动化操作时,当访问 Bing 等网站时,系统会触发真人验证机制,导致无法正常完成自动化任务。这是因为网站通过检测 navigator.webdriver 属性识别出了自动化浏览器。
解决方案:中级伪装技术
使用 puppeteer-extra-plugin-stealth 插件
puppeteer-extra-plugin-stealth 是一个专门用于隐藏 Puppeteer 自动化特征的强大插件。它能够:
- 将
navigator.webdriver属性设置为undefined - 修改其他可能暴露自动化身份的浏览器属性
- 提供多层伪装,有效规避网站检测
实施步骤
1. 安装必要依赖
npm install puppeteer-extra puppeteer-extra-plugin-stealth2. 代码实现
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/