使用Puppeteer+Stealth插件仍显示Chrome自动化控制标签的问题
问题解答与解决方案
核心疑问拆解
Chrome的提示会不会让其他网站识别出机器人?
不会。Chrome显示的这两个提示是浏览器自身的状态标识,和网站检测机器人的逻辑完全独立。网站识别机器人靠的是浏览器指纹(比如navigator.webdriver属性、JS特征、Canvas指纹等),而你用的puppeteer-extra-plugin-stealth已经成功掩盖了这些特征——sannysoft检测全绿就是最好的证明,说明网站层面无法识别你是自动化程序。为什么检测工具全绿但Chrome仍有提示?
这俩是两回事:- “Chrome is being controlled by automated test software”:是因为Puppeteer默认启动Chrome时会添加
--enable-automation参数,这是浏览器本身的提示,和网站检测无关; - “Chrome for Testing...”:是因为Puppeteer默认下载的是专门的测试版Chrome(Chrome for Testing),而非普通用户用的稳定版Chrome,这个提示是测试版自带的。
而sannysoft检测的是机器人特征,Stealth插件已经处理了这些特征,所以检测全绿,但浏览器自身的提示不受插件影响。
- “Chrome is being controlled by automated test software”:是因为Puppeteer默认启动Chrome时会添加
是否该忽略标签?
如果你的爬虫/机器人功能正常,网站没有拦截,完全可以忽略。这些提示只是给你看的,不会被网站用来识别机器人。但如果看着不舒服,也可以通过配置去掉。插件是否失效?
没有失效。sannysoft所有检测项全绿已经证明插件在正常工作——它的作用是规避网站的机器人检测,而不是隐藏Chrome自身的自动化提示。
具体解决办法
1. 去掉“被自动化测试软件控制”的标签
在Puppeteer启动参数中添加--disable-blink-features=AutomationControlled,这个参数会禁用Chrome的自动化控制标识,从而去掉顶部的提示栏。
2. 去掉“Chrome for Testing”的提示
不要用Puppeteer默认下载的测试版Chrome,改用你本地安装的普通稳定版Chrome,只需要在launch时指定executablePath为本地Chrome的路径即可。
修改后的完整代码
const puppeteer = require('puppeteer-extra') const prompt = require("prompt-sync")({ sigint: true }); const StealthPlugin = require('puppeteer-extra-plugin-stealth') puppeteer.use(StealthPlugin()); (async () => { const browser = await puppeteer.launch({ headless: false, // 禁用自动化控制标识,去掉顶部提示栏 args: ['--disable-blink-features=AutomationControlled'], // 替换成你本地Chrome的实际路径 executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' // Windows示例 // executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' // Mac示例 // executablePath: '/usr/bin/google-chrome' // Linux示例 }); const page = await browser.newPage(); // 额外确保webdriver属性被隐藏(Stealth插件通常已处理,此步骤为双重保险) await page.evaluateOnNewDocument(() => { delete window.navigator.__proto__.webdriver; }); await page.goto("https://bot.sannysoft.com/"); finish = prompt("Shall we finish the program?"); console.log(`Finishing program: ${finish}`); await browser.close(); })();
内容的提问来源于stack exchange,提问作者lapdoggo
相关产品推荐
相关产品推荐

