javascript - 使用 puppeteer 绕过 Headless Chrome 的验证码

标签 javascript node.js puppeteer

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/

相关文章:

javascript - 无法让我的脚本不断点击按钮

javascript - 与 React 一起使用时如何检测 keyPress 上的 'Enter' 键

javascript - 如何传递数组并在 React Lifecycle 中访问它

node.js - nodejs并通过不同的模块进行日志记录

node.js - 如何调试 Node.js 服务器?调试器跳过我的断点! (使用VSCode)

node.js - Puppeteer 并未提取所有元素

javascript - 使用递增变量时 jquery 循环不起作用

javascript - 在独立元素中使用 Vue.js

node.js - 抓取 Netflix

javascript - 如何在 Puppeteer/Pyppeteer 中等待 Recaptcha 加载?