puppeteer 通过启用 cookie 和 Javascript 绕过 cloudflare

2024-03-21

(仅在 NodeJs -> 服务器端)。

我正在做一些网页抓取,一些页面受到 cloudflare anti-ddos 页面的保护。我正在尝试绕过此页面。通过搜索,我发现了很多关于隐身方法或 reCapcha 的文章。但问题是,cloudflare 甚至没有尝试给我验证码,它一直卡在页面上(等待 5 秒),因为它显示为红色(打开 JavaScript 并重新加载)和(打开 COOKIES 并重新加载),由我的 javascript 似乎很活跃,因为我的程序在很多网站上运行并且它处理 javascript。

这是我的代码:

//vm = this;
vm.puppeteer.use(vm.StealthPlugin())
vm.puppeteer.use(vm.AdblockerPlugin({
  blockTrackers: true
}))
let browser = await vm.puppeteer.launch({
  headless: true
});
let browserPage = await browser.newPage();
await browserPage.goto(link, {
  waitUntil: 'networkidle2',
  timeout: 40 * 1000
});
await browserPage.waitForTimeout(20 * 1000);
let body = await browserPage.evaluate(() => {
  return document.documentElement.outerHTML;
});

我还尝试删除stealthPlugin和AdblockerPlugin,但cloodflare一直告诉我没有javascript和cookie。

有人可以帮我吗?


设置您自己的 UserAgent 和 Accept-Language 标头应该有效,因为您的无头浏览器需要假装像一个正在浏览的真人。

您可以使用page.setExtraHTTPHeaders() https://github.com/puppeteer/puppeteer/blob/v10.2.0/docs/api.md#pagesetextrahttpheadersheaders and page.setUserAgent() https://github.com/puppeteer/puppeteer/blob/v10.2.0/docs/api.md#pagesetuseragentuseragent-useragentmetadata这样做。

await browserPage.setExtraHTTPHeaders({
 'Accept-Language': 'en'
});
// You can use any UserAgent you want
await browserPage.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

puppeteer 通过启用 cookie 和 Javascript 绕过 cloudflare 的相关文章

  • 有没有办法像我们在bunyan CLI 中显示的那样显示winston 日志文件?

    In Bunyan https github com trentm node bunyanlogger 我们可以看到这样的日志文件 tail f sample log bunyan并以彩色显示日志并漂亮地显示 json 对象 但我找不到类似
  • 如何从脚本中退出 NodeJS 脚本?

    现在我有一个为我设置数据库的nodeJS 脚本 每当我在命令行中运行它时 我都需要按 ctrl C 退出脚本 我假设nodeJS中有某种命令可以让它在完成后自行退出 但我似乎无法通过在interwebz上进行搜索来找到任何此类命令 有人知道
  • 如何检查 Node.js 中是否设置了环境变量?

    我想检查我的环境变量是否设置快递JS https www npmjs com package express服务器并根据是否设置执行不同的操作 我试过这个 if process env MYKEY undefined console log
  • 更新插入不适用于 updateOnebulkWrite v3.4

    我正在尝试批量写入一些更新 除了更新插入之外的所有内容都正常 我的代码完美地更新了所有项目 并且没有给出任何错误 这里的问题是批量插入updateOne没有更新插入 这是我的代码的未经测试和缩短的示例 因此您可能会发现一些语法错误 希望您明
  • 修改“NodeJS”上的 XML 标签

    有谁知道如何使用 NodeJS 修改 XML 文件的标签值 这是我的 XML 文件
  • 尝试通过 knex 连接到 Mssql 服务器

    我正在尝试使用 knex 连接到远程数据库 但收到此错误 乏味已弃用默认值options encrypt将会改变自false to true 请通过false如果您想保留当前行为 请明确地表示 在node modules mssql lib
  • 使用 Node.js 将对象写入文件

    我已经在 stackoverflow google 上搜索过这个 但似乎无法弄清楚 我正在抓取给定 URL 页面的社交媒体链接 该函数返回一个包含 URL 列表的对象 当我尝试将此数据写入不同的文件时 它会输出到该文件 object Obj
  • 如何将子集合添加到 Firestore 中的文档? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 没有关于如何在Firestore中的文档中添加子集合的文档 那么如何使用Web应用程序添加子集合 我尝试了这个但没有成功 如何使用代码
  • readFile() 和 readFileSync() 之间的区别

    以下代码将index html 的内容 仅包含文本hello world 输出到浏览器 然而 当我更换readFile with readFileSync 请求超时 我缺少什么 是否需要不同类型的缓冲区 我使用的是node 0 61 和ex
  • 创建shell可执行全局节点模块

    我尝试创建节点模块 我成功了 我用了npm install g在代码目录中 它创建了这个模块文件夹 AppData Roaming npm node modules myfirstmodule 现在我想让一个文件作为命令可执行 例如 pm2
  • 如何在前端和后端之间共享javascript代码(ES6)

    这是 ES6 特定的副本这个所以线程 https stackoverflow com questions 3225251 how can i share code between node js and the browser 其中详细介绍
  • 规则和夏令时

    我在用着rrule https github com jakubroztocil rrule在我的数据库中创建和存储事件 一切正常 直到我发现我的重复事件与 3 月 31 日之后有一个小时的差异 在法国 这一天我们进行夏令时更改 实际上 我
  • 使用 Sequelize 计算关联条目数

    我有两张桌子 locations and sensors 每个条目在sensors有一个外键指向locations 使用 Sequelize 如何获取所有条目locations以及条目总数sensors与每个条目相关联locations R
  • 枚举nodejs中的系统驱动器

    有没有办法检索计算机上所有逻辑驱动器的驱动器名称 我查看了 fs api 但从那里我只能枚举给定目录的文件和目录 我不确定 驱动器名称 是什么意思 如果您的意思是以下形式的驱动器 PhysicalDriveN 我遇到了同样的问题并实现了这个
  • 如何使用 javascript 从 UUID v1 (TimeUUID) 中提取时间戳?

    我使用 Cassandra DB 和 Nodejs 的 Helenus 模块来操作它 我有一些包含 TimeUUID 列的行 如何在javascript中从TimeUUID获取时间戳 这个库 UUID 至今 https github com
  • 在 ExpressJS 中通过管道传送远程文件

    我想读取远程图像并显示它 我可以保存文件 但无法正确显示代码 理想情况下 我只想直接传递文件而不进行处理 不确定是否需要 tmp 文件步骤 此代码不显示任何内容 没有错误 我也尝试了 res pipe response var url ht
  • NodeJS 内存增长 - (系统)内存泄漏?

    我在我们的生活环境中遇到了奇怪的内存泄漏 其中 system 堆中的对象不断增长 堆转储 Here is a memory dump where the memory usage grew to 800MB 请注意 该内存保留在Genera
  • 在 ExpressJS 中为特定路由链接多个中间件

    我只想验证一些东西 但无法在 Express 文档或在线中找到与此相关的任何内容 尽管我知道这是一个功能 我可以测试一下 但我真的没有一个好的模板 并且希望听到社区的意见 如果我像这样在express中定义一条路线 app get func
  • 在 NPM 上捆绑并发布客户端 Web 代码

    我制作了一个 JavaScript 文件 假设它的内容是这样的 let myCoolAlert str gt alert str in a different js file SO doesn t allow you to cross fi
  • 托管 React 应用程序和 Express 服务器 cpanel

    我是托管新手 如果有人可以非常详细地解释 这将对我有很大帮助 我有以下问题 我有前端使用react app和后端使用expressjs and mysql 我的计算机中有一个可以运行的简单应用程序 我使用本地主机启动后端和前端 它们工作完美

随机推荐

  • 在 Qt 拖放中使用 QMimeData 传递数据

    我试图了解在 Qt 中使用拖放时数据如何传递 根据我从我一直在研究的示例中了解到的内容 您首先通过重写继承的方法将小部件定义为可拖动的QWidget 在重写方法的实现中 我一直在查看的示例实例化了一个指向QMimeData对象 并通过调用在
  • 将变量传递给指令模板而不创建新范围

    有没有一种方法可以使用属性将变量传递给指令而不创建新的作用域 HTML div div JS directive button function return scope button template div div div button
  • 来自 Firefox 附加组件的控制台日志记录

    Mozilla 文档 https addons mozilla org en US developers docs sdk latest dev guide console html https addons mozilla org en
  • 想要调整 Windows 中运行的其他应用程序的大小

    我正在寻找最干净的方法来获取所有打开的窗口并可以移动 调整它们的大小 我希望能够获取他们当前的位置并将它们移动到我想要的位置 我想要访问所有窗口 而不仅仅是顶层窗口 Thanks 本教程显示了获取正在运行的进程列表的一种方法 用于进程检索的
  • “FormData”仅在 IE 中未定义

    我有一个问题 我需要将数据发布为内容类型application x www form urlencoded var inputData cId 444 pageNo 1 latitude 49 153236 longitude 12 040
  • ActiveRecord find_all_by_X 是否保留顺序?如果不是,应该用什么来代替?

    假设我有一个非空数组ids of Thing对象 ID 我想使用查找相应的对象things Thing find all by id ids 我的印象是things不一定有类似于的顺序ids 我的印象正确吗 如果是这样 我可以用什么来代替f
  • Cassandra 物化视图影响

    想知道 mv 对基表的影响 它会减慢基表的速度吗 它什么时候开始写入 mv 就像同时写入基表和 mv 一样 如果我有 local quorum 的 CL 且 RF 3 客户端是否必须等到写入 mv 才能获得 ack 基表和 mv 涉及哪种类
  • tailwindcss 排版“SassC::SyntaxError:错误:类型的未终止属性选择器”

    我升级了tailwindcss railsgem 并在编译生产资源时出现此错误 bundle exec rails assets precompile rails aborted SassC SyntaxError Error unterm
  • rbenv 不断生成 vagrant shim

    我正在使用最新的 vagrant 和 rbenv 和各种红宝石 我正在使用最新的 vagrant 它不再使用 gem 当我执行 vagrant 命令时 我看到以下错误 rbenv vagrant command not found 我已经从
  • 使用命名空间两次

    在 C 中可以两次包含相同的名称空间吗 编译器不会给出任何错误 但无论如何它仍然会产生影响 Thanks EDIT I meant using namespace std STUFF using namespace std 这取决于您所说的
  • 在 Symfony 1.4.8 中显示图像时出错

    注意 很难决定这是否属于此处或 ServerFault 但这似乎是一个编程问题 因此如果它不合适 请随意迁移它 我下载了 Symfony 1 4 8 的沙箱并将文件复制到我的网络服务器 不幸的是 当我尝试访问时 symfony sf san
  • 如何使节点child_process连续执行

    How to exec连续地 例如ls after cd I tried exec require child process exec exec cd function exec ls function err stdout stderr
  • 安全页面上 iframe 中的不安全内容

    我正在为客户端开发一个应用程序 该应用程序将具有 SSL 证书并在 https 下提供服务 然而 为了与现有网站集成 他们希望在 iframe 内提供导航 我可以看到这会造成麻烦 因为我希望浏览器会抱怨页面上混合了安全和不安全的内容 我在这
  • array_combine 只返回最后一个值

    我有两个不同的array for foreach loop所以我决定将它们结合起来并运行到foreach loop在一起 但它只返回数组的最后一个值 数组1 FileType Array 0 gt image png 1 gt image
  • 依赖于失败的 Gradle 任务

    一个 Gradle 任务可以依赖于另一个任务的失败吗 例如 我有一个辅助任务 在浏览器中打开测试报告 我希望报告仅在任务 测试 失败时出现 而不是像现在一样在所有测试都通过时出现 task viewTestReport dependsOn
  • ShadowProperties 在创建之前由 foreach 访问

    我是实体框架新手 正在通过 Julie Lerman 的 Pluralsight 课程学习 ATM 我正在看第二课 实体框架核心 2 映射 https app pluralsight com library courses e f core
  • Python:解析 XML 文档同时保留实体

    我想问有哪些已知的现有 Python 2 x 库可用于使用内置 DTD 解析 XML 文档without自动扩展实体 对于那些好奇的人来说有问题的文件 JMdict ftp ftp monash edu au pub nihongo JMd
  • 将画布对象保存为 json

    我将如何序列化画布对象 如下所示 context beginPath context rect 188 50 200 100 context fillStyle yellow context fill context lineWidth 7
  • ConditionalAttribute 和其他特殊类

    The ConditionalAttribute可用于根据定义的编译器符号删除对标记方法的调用 我假设我们无法自己创建此类 因为编译器必须专门寻找它 我想知道编译器或语言使用的其他类是我们无法自己编写的 除了提到的那些之外 Attribut
  • puppeteer 通过启用 cookie 和 Javascript 绕过 cloudflare

    仅在 NodeJs gt 服务器端 我正在做一些网页抓取 一些页面受到 cloudflare anti ddos 页面的保护 我正在尝试绕过此页面 通过搜索 我发现了很多关于隐身方法或 reCapcha 的文章 但问题是 cloudflar