【发布时间】:2021-08-15 12:23:55
【问题描述】:
我有一个脚本应该打开一个无头浏览器,进行搜索,然后截屏。
当我使用headless: false 运行脚本时,一切正常。
当我使用 headless: true 运行它时,我被网站(验证码)阻止。
我知道有办法绕过验证码,但这不是我想要的。
我的问题是这两种模式之间有什么区别,网站将我识别为无头浏览器,但当它不是无头浏览器时,它不会。
我尝试过的事情:
- 通过 chrome 检查
- 通过通知检查
- 设置语言标题
- 插入新的用户代理和其他不同的参数,例如:
'--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
'--window-size=1920,1080',
'--no-sandbox',
'--disable-gpu',
'--no-zygote',
'--disable-setuid-sandbox',
'--disable-accelerated-2d-canvas',
'--disable-dev-shm-usage'
我正在使用最新的 puppeteer 版本 (10.1.0),“puppeteer-extra-plugin-stealth”和“puppeteer-extra”。
【问题讨论】:
-
这能回答你的问题吗? Headless browser detection
-
欢迎来到 SO!在相关网站上添加minimal reproducible example 可能有助于为您提供更具体的原因来了解正在发生的事情。最好有一些东西可以运行和摆弄。
-
@theDavidBarton 尝试了所有这些方法,但仍然无法正常工作
标签: node.js puppeteer headless-browser