【发布时间】:2021-01-26 13:26:12
【问题描述】:
(在 nodeJs -> 仅服务器端)。
我正在做一些网页抓取,一些页面受到 cloudflare 反 ddos 页面的保护。我试图绕过这个页面。通过搜索,我发现了很多关于隐身方法或 reCapcha 的文章。但问题是 cloudflare 甚至没有尝试给我验证码,它一直卡在页面上(等待 5 秒),因为它显示为红色(打开 JAVASCRIPT 并重新加载)和(打开饼干并重新加载),由我的 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。
谁能帮帮我?
【问题讨论】:
-
如果你运行这个 headful 会发生什么?控制台中是否有任何与 js 相关的错误?
-
通过评论 headless: true 我得到完全相同的东西 通过编辑 headless; false 我收到错误 UnhandledPromiseRejectionWarning: 错误: 无法启动浏览器进程!疑难解答,但在我的 google chrome 中打开了一个标签
-
我清理了我的工作,现在用 headless false 在导航中打开了一个选项卡,没有红色的东西,但是当 cloudflare 在 5 秒后重新加载时,它会自行重新加载,而不是在我想要的网站上
-
你现在有消息了吗?我面临同样的问题,除了我从未收到“打开 Javascript”消息
-
我尝试修改标题似乎不起作用。通过与某些人交谈,这似乎很正常,因为 cloudflare 会尝试捕获机器人,因此即使您找到了解决方案,它也有暂时的风险(猫/老鼠游戏)
标签: node.js puppeteer cloudflare