Puppeteer、cloudflare 网站返回 403(禁止)

2024-02-16

我正在尝试从 cloudflare 网站上抓取数据。但无论我做什么,我都会收到 403 禁止错误。

我读到这是因为无头请求。有什么办法可以绕过这个吗? 我将在下面保留我当前的设置。我还能做些什么来防止被发现吗?

const puppeteer = require("puppeteer-extra");
const StealthPlugin = require("puppeteer-extra-plugin-stealth");
puppeteer.use(StealthPlugin());

(async () => {
  const args = [
    "--no-sandbox",
    "--disable-setuid-sandbox",
    "--disable-accelerated-2d-canvas",
    "--no-zygote",
    "--renderer-process-limit=1",
    "--no-first-run",
    "--ignore-certificate-errors",
    "--ignore-certificate-errors-spki-list",
    "--disable-dev-shm-usage",
    "--disable-infobars",
    "--lang=en-US,en",
    "--window-size=1920x1080",
    "--disable-extensions",
  ];

  const options = {
    args,
    headless: true,
    ignoreHTTPSErrors: true,
    userDataDir: "./tmp",
    executablePath: "/snap/bin/chromium",
  };

  try {
    const browser = await puppeteer.launch(options);
    const page = await browser.newPage();

    page.on("response", (response) => {
      console.log(response.status());
    });

    await page.setExtraHTTPHeaders({
      "Accept-Language": "en,en-US;q=0,5",
      Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8",
    });

    await page.waitFor(5000);

    await page.goto(process.argv[2]);

    await browser.close();
  } catch (err) {
    console.log(err);
  }
})();

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Puppeteer、cloudflare 网站返回 403(禁止) 的相关文章

随机推荐

  • 将 copts/defines 传播到目标的所有依赖项

    我有一个项目 在一个相当复杂的构建系统中的单个工作空间中涉及多个构建文件 简而言之 我的目标 对于某些特定目标 我希望使用一组额外的属性来构建其所有递归依赖项 copts defines 与以任 何其他方式构建这些依赖项目标时相比 我还没有
  • 在 BIN 文件夹中找不到 ApacheJMeterTemporaryRootCA.crt

    我无法在 bin 文件夹中看到 ApacheJMeterTemporaryRootCA crt 文件 我正在运行 jmeter 5 2 1 我需要对此进行排序 以便能够将认证添加到对服务器的 API 调用中 请提供任何帮助或为我指明正确的方
  • 在 C# 中存储永远不会改变的静态数据的最佳方法是什么

    我有一个类将数据存储在 asp net c 应用程序中 并且永远不会改变 我真的不想将这些数据放入数据库中 我希望它保留在应用程序中 这是我在应用程序中存储数据的方法 public class PostVoteTypeFunctions p
  • 从html中提取标题标签

    我想从 html 字符串中提取标题标签的内容 我已经进行了一些搜索 但到目前为止我无法在 VB C 或 PHP 中找到此类代码 此外 这应该适用于大写和小写标签 例如应该与两者一起使用和 TITLE gt 谢谢 您可以为此使用正则表达式 但
  • 如何在 Haskell 中进行嵌套“循环”

    我正在查看一些 JAVA 代码 我想知道如何将其转换为 Haskell IntStream range 0 cookedWords length parallel forEach int i gt int A cookedWords i f
  • 在视图中播放框架配置值

    我如何访问该值application name from conf application conf在一个视图中 您可以使用以下代码示例来执行此操作 play configuration application name 另请参阅http
  • 如何使用 postData 过滤器刷新 jqGrid 搜索对话框

    我正在使用 jqGrid 到目前为止一切都运行良好 但现在我正在努力允许用户能够保存他们的搜索 以便他们以后可以检索它们和 或将它们应用到不同的网格 事实证明 节省实际上是最容易的部分 我可以根据指定的 postData 过滤器获取网格进行
  • Wix 卸载不删除文件,始终假定程序文件\myApp 文件夹

    我在使用 Wix 安装程序时遇到问题 并且不知道具体缺少什么 我已启用该对话框以允许用户选择自己的安装文件夹而不是默认的安装文件夹 如果我运行安装并保留默认的 Program Files MyApp 则应用程序安装没有问题 如果我随后卸载
  • 如何解决 Labview 加载冲突

    我正在 Labview 中开发一个数据采集程序 该程序使用多个平移台 相机 高速数字化仪和其他仪器 我正在一台计算机上开发该应用程序 并将其部署到另一台计算机上 开发计算机具有labview 2013 而要部署应用程序的计算机当前具有Lab
  • 在 Backbone.js 应用程序中设置全局 REST 根 url

    在backbone js中 您必须手动设置每个模型的rooturl 有没有一种方法可以将其设置在一个位置一次并且所有模型都会使用它 For eg api site com将是 REST 服务 但出于测试目的 它可能位于localhost 1
  • Apache NiFi:使用映射值将列添加到 csv

    使用 GetFile 处理器将 csv 导入 NiFi 工作流程 我有一列由 id 组成 每个id代表一个特定的字符串 大约有3个id 例如 如果我的 csv 包含 name age id John 10 Y Jake 55 N Finn
  • 我如何在 php 中获取上个月的名称[重复]

    这个问题在这里已经有答案了 可能的重复 php 中给定月份的下个月和上个月 https stackoverflow com questions 9172035 next and previous month from a given mon
  • EventAggregator 仅适用于 MVVM 中的 ViewModel?

    我了解到在 MVVM 设计中实现的事件聚合器模式可以帮助解耦 ViewModel 之间的通信 我认为事件聚合器确实是个好主意 但转念一想 事件聚合器仅由 ViewModel 使用吗 模型可以在事件聚合器中发布和订阅事件吗 通过这种方式 Vi
  • 创建一个函数以从 Oracle 数据库中获取数据(按 ID 排列的数组)

    我正在尝试创建一个函数 它只允许我向其中传递 SQL 语句 并且它将根据我传递给它的唯一 ID 生成一个数组 function oracleGetGata query id id global conn sql OCI Parse conn
  • appspot.com 网址显示在 Google 搜索结果中,而不是自定义域名

    我已经设置了http www footballverdict com http www footballverdict com它托管在 Google App Engine 上 一切正常 您可以毫无问题地访问自定义域 由于某种原因 当我在 G
  • 在 Swift 中,如何在 Voiceover 说话时停止文本转语音,反之亦然?

    现在 我的应用程序实现了AVSpeechSynthesizer读出每个屏幕的说明 该应用程序还会考虑何时启用 Voiceover 辅助功能 我现在面临的问题是文本转语音功能与画外音功能重叠 是否有解决方案可以检测到当用户导航到屏幕上的另一个
  • 嵌入式 Jetty:在安全 https 服务器中,ContextHandler 重定向到 http URI

    我正在使用嵌入式 Jetty 构建沙箱 RESTful API 我的概念验证设计 一个简单的嵌入式 jetty 服务器 1 接受 SSL 端口上的连接 2 使用 ContextHandlerCollection 根据 URI 前缀调用正确的
  • 3d.io 的航点动画问题

    相机动画始终从初始相机姿势开始 我们不希望出现这种行为 您可以通过以下方式检查此问题 https app 3d io default setup https app 3d io default setup 这段代码以前有效 我们没有改变任何
  • 如何通过chrome扩展自动设置gmail过滤器?

    我想将以下用例实现为 Chrome 扩展 用户访问 Gmail 扩展程序检查当前电子邮件正文中的关键字 如果存在关键字 则添加并保存gmail过滤器 添加标签 存档 此处的详细信息并不重要 第一部分听起来更容易 有谷歌邮箱API https
  • Puppeteer、cloudflare 网站返回 403(禁止)

    我正在尝试从 cloudflare 网站上抓取数据 但无论我做什么 我都会收到 403 禁止错误 我读到这是因为无头请求 有什么办法可以绕过这个吗 我将在下面保留我当前的设置 我还能做些什么来防止被发现吗 const puppeteer r