如果我想要抓取的图像受 cloudflare 保护并给出 1020 错误,有没有办法使用 Cheerio 抓取网站?

2024-01-25

我正在尝试创建一个漫画抓取网站作为个人项目,就在我完成整个网站时,我知道图像无法被我的网站抓取或查看,当我尝试转到图像的链接时,我收到 1020 错误,指出访问被拒绝,有什么方法可以绕过该错误,而无需从网站所有者那里获取授权令牌,

如果答案是否定的,那么任何人都可以解释一下 cloudflare 如何保护图像免遭抓取,因为据我所知,前端的所有内容都可以被抓取。

编辑:这是其中之一image https://s61.mkklcdnv61.com/mangakakalot/u1/uh918990/chapter_0_prologue/31.jpg我想抓取,但当我在浏览器上打开时,它给出 1020 访问被拒绝错误


通过该网站,为了下载类似的图像this one https://s61.mkklcdnv61.com/mangakakalot/u1/uh918990/chapter_0_prologue/1.jpg,您在 http 请求中需要此标头:

Referer: "https://mangakakalot.com/"

添加该标头,然后它成功返回所需的图像。删除该标头,您会收到错误(在本例中为 403)。

这是一个简单的测试应用程序:

const got = require('got');

const url = "https://s61.mkklcdnv61.com/mangakakalot/u1/uh918990/chapter_0_prologue/1.jpg";

const options = {
    headers: {
        Referer: "https://mangakakalot.com/",
    }
}

got(url, options).then(result => {
    console.log(result);
}).catch(err => {
    console.log(err);
});

仅供参考,如果您想知道我是如何得出这个结果的,我访问了包含此图像的网页。我查看了 Chrome 调试器的“网络”选项卡,找到了浏览器下载该特定图像的引用。然后,我查看了向服务器发出的获取此图像的请求,并查看了请求中的其他标头。我添加了两个简单的(Referrer and User-Agent)以更准确地模仿浏览器。这将响应从 403 更改为 200。然后,我尝试看看是否可以删除这些标头中的任何一个,并且它仅适用于Referrer header.

我猜测这里的 403 错误和您在浏览器中直接访问该链接时看到的 1020 错误之间的区别可能与所使用的 http 版本有关(浏览器比我的 Nodejs 脚本更高级)。但是,重点是您现在可以下载上述脚本中的图像。

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

如果我想要抓取的图像受 cloudflare 保护并给出 1020 错误,有没有办法使用 Cheerio 抓取网站? 的相关文章

  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • Cloud Functions for Firebase - 通过 Nodejs/Cloud Function 将多个 PDF 合并为一个

    我遇到了一个问题 我试图通过云功能合并一堆 PDF 然后将合并的 PDF 下载到用户的计算机上 我的提供程序中有一个函数 它调用云函数并传递指向 pdf 的 URL 数组 如下所示 mergePDFs pdfs Create array o
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • 如何清除NPM的https代理设置?

    如何清除NPM之前的ssl代理设置 好吧 我搜索了很多 但我得到的所有帖子主要是关于如何set公司网络中的代理 我尝试将代理设置为空 npm config set http proxy npm config set https proxy
  • 为 Node.js 客户端应用程序保留 Firebase 用户

    我正在使用 Firebase 构建 Node js 命令行界面 CLI 用于与后端进行身份验证 我想避免让用户每次运行命令时都输入密码 相反 我想实现一个 登录 流程 将凭证保留到文件系统 该凭证可用于后续的无密码身份验证 直到用户 注销
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • Node.js 中的异步或步骤

    我无法让我的异步代码与 node js 一起使用 尝试异步和步骤库 代码仅返回第一个函数 似乎没有执行其余函数 我究竟做错了什么 thanks var step require step step function f1 console l
  • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

    Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

  • Android:捕获 BLE 连接失败/断开连接?

    所以在正常情况下我能够很好地连接到 BLE 设备 我想做的是处理异常情况 例如与设备的连接失败或已建立的连接丢失 也许它被扔下悬崖或被公共汽车撞到 我正在使用 CyPress BLE 模块来测试这一点 我正在做的测试之一是断开模块的电源 然
  • 为什么 Spark 会失败并显示“检测到逻辑计划之间的 INNER join 的笛卡尔积”?

    我在用火花2 1 0 当我执行以下代码时 我从 Spark 收到错误 为什么 如何修复它 val i1 Seq a string another string last one toDF a b val i2 Seq one string
  • 为什么我的类在 Visual Studio 中默认是私有的?

    当我创建一个新的类文件时 Visual Studio 默认情况下不会将其公开 我可以改变这个吗 默认情况下 没有访问说明符的类是内部类 成员默认为私有类 这使得可见性尽可能受到限制 从而增加封装性 不假思索地公开一个新类就破坏了整个封装的想
  • 在异步循环中设置 useState 挂钩

    我对reactJs很陌生 我试图在异步循环中连接结果 但出了点问题 setState 未正确保存 当我打印它时 我可以看到它是一个空数组 我想是因为里面有一个异步调用 我该如何解决这个问题 请建议我 function App const d
  • 如何通过for循环在Rmarkdown中显示绘图图像?

    我正在处理一个列表svg打印到 html 文档 我正在使用magick包认为我愿意使用其他包 解决方案 下面的代码是我尝试渲染我的 html 文档 但是 不是渲染svg对于 html 文件 它只是将元数据打印到文档中 有没有办法克服这种行为
  • Karma:使用 WSL 中的 Windows Chrome

    我正在尝试使用 Windows 版本的 Google Chrome 从 WSL 启动 karma 在 karma conf js 中 我只使用 Chrome 浏览器 browsers Chrome 我像这样导出 CHROME BIN 环境变
  • LINQ to Entities 不支持指定的类型成员“Title”

    我在使用时遇到错误Title我的 Linq to Entity 中的属性 LINQ to 不支持指定的类型成员 Title 实体 仅初始值设定项 实体成员和实体导航 支持属性 我的查询是 var db FaraWorkspaceEntity
  • 基于 Woocommerce 中产品类别的条件自定义结帐字段

    我正在使用 woocommerce 作为一个非营利组织的网站 该网站出售课程门票和活动门票 当有人报名参加课程时 需要列出他们的紧急联系信息并同意免责 当他们购买活动门票时 非营利组织不需要紧急联系信息或责任免除 所以 他们希望这些字段仅在
  • rails 列不能为空:

    我注意到我的应用程序会自动将所有流程设置为在创建后立即完成 我浏览了一下 找不到为什么在没有被告知的情况下更新日期 但我发现我的观点之一是寻找一个不存在的字段 我创建了 完整 字段 将其设置为非空布尔值 然后再次尝试 我再次将其自动设置为
  • WinRT:如何将 WriteableBitmap 保存到本地文件夹

    如何在 WinRT 中使用 C 将 WriteableBitmap 保存到本地文件夹 您可以检查 WinRT XAML Toolkit 中的一组扩展方法来完全满足您的需要 http winrtxamltoolkit codeplex com
  • UIActivityViewController 在设备上呈现时崩溃

    我在项目中添加 ios 默认共享表 UIActivityViewController 时遇到问题 它在模拟器上运行良好 但在使用 USB 电缆或 testflight 在设备 iPhone 上运行时会崩溃 我收到的错误消息是 由于未捕获的异
  • 将 .net 4.5 应用程序降级到 4.0

    我想将 net 库从框架版本 4 5 降级到 net 4 0 我使用 nuget 安装了几个库 Microsoft AspNet WebApi Client 及其依赖项 Newtonsoft Json System Net Http Mic
  • 我没有关闭管道末端的一个,有什么问题发生吗?

    我使用管道在父进程和子进程之间进行通信 我读的书说 在父进程中 我必须关闭pipefd 1 但我没有这样做 也没有发生其他事情 所以我的问题是 如果我不关闭pipefd 1 有什么吗 不受控制 此致 int pipefd 2 if pipe
  • 用Java编写一个丢弃网络数据包的个人防火墙[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用Java编写一个可以丢弃网络数
  • Android:谷歌地图 API 版本 2

    我按照步骤配置 Google Maps Android API v2官方步骤 https developers google com maps documentation android start我使用的是安卓3 1版本 我运行项目时遇到
  • UITextField,1个字符后自动移至下一个

    场景 我有 4 个 UITextField 仅接受 1 个字符 简单的 问题 输入 1 个字符后 我希望下一个 TextField 自动变为活动状态 而不必按下一个 即我正在使用 UIKeyboardTypeNumberPad 并且没有 N
  • 如何将 python 中的目标代码转换为 kotlin?

    我正在开发一个将使用分水岭的图像分割应用程序 为此 我找到了一个需要在 python 中使用的代码 但是 我很难转换为 kotlin 因为 Mat Mat 没有 Zero likes 函数 只有 Zero 函数 我使用的是opencv 3
  • MongoDB shell:如何搜索与名称或正则表达式匹配的集合

    当我使用 show collections 时 它返回一个相当长的所有集合的列表 如何编写查询来返回与模式匹配的集合 我希望有像 db collections name pattern 这样的东西 但找不到 您可以使用db getColle
  • 在 C++ 中释放指针两次或更多次时会发生什么?

    int main Employee e new Employee delete e delete e delete e return 0 You get 未定义的行为如果你尝试delete一个对象多次通过指针 这意味着几乎任何事情都可能发生
  • 如果我想要抓取的图像受 cloudflare 保护并给出 1020 错误,有没有办法使用 Cheerio 抓取网站?

    我正在尝试创建一个漫画抓取网站作为个人项目 就在我完成整个网站时 我知道图像无法被我的网站抓取或查看 当我尝试转到图像的链接时 我收到 1020 错误 指出访问被拒绝 有什么方法可以绕过该错误 而无需从网站所有者那里获取授权令牌 如果答案是