google
发现我的浏览器正在被软件操纵/控制/自动化
,因此我获得了reCaptcha
。当我手动启动 Chromium 并执行相同的步骤时,不会出现 reCaptcha。
问题 1)
在使用 puppeteer
时是否可以通过编程方式解决验证码或摆脱它?有什么办法可以解决吗?
问题 2)
只有在没有 headless
选项时才会发生这种情况 i.e
const browser = await puppeteer.launch({
headless: false
})
或者这是我们必须接受并继续前进的事实?
最佳答案
尝试使用这个 npm package 生成随机用户代理. 这通常解决了基于用户代理的保护。
在 puppeteer 页面中可以使用 page.setUserAgent
覆盖浏览器用户代理
var userAgent = require('user-agents');
...
await page.setUserAgent(userAgent.random().toString())
此外,您可以添加这两个额外的插件,
puppeteer-extra-plugin-recaptcha - 使用一行代码自动解决 reCAPTCHAs:page.solveRecaptchas()
注意:puppeteer-extra-plugin-recaptcha
使用付费服务 2captcha
puppeteer-extra-plugin-stealth - 应用各种规避技术,使 headless puppeteer 操纵者的检测更加困难。
关于javascript - 使用 puppeteer 绕过 Headless Chrome 的验证码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55678095/