防止网页抓取

2023-12-19

我目前是开发一个应用程序的团队的一员,该应用程序包括前端客户端。

通过这个客户端,我们发送用户数据,每个用户都有一个用户 ID,客户端通过 RESTful API 与我们的服务器对话,向服务器请求数据。

例如,假设我们有一个书籍数据库,用户可以获取作者最近写的 3 本书。我们重视用户的时间,我们希望用户无需明确注册即可开始使用该产品。

我们重视我们的数据库,我们使用自己的专有软件来填充它,并希望尽可能地保护它。

所以基本上问题是:

我们可以做些什么来保护自己免受网络抓取?

我非常想了解一些保护我们数据的技术,我们希望防止用户在作者搜索面板中输入每个作者的姓名并取出每个作者写的前三本书。

任何建议的阅读将不胜感激。

我只想提一下,我们了解验证码,并希望尽可能避免使用它们


防止这种情况的主要策略是:

  • 需要注册,因此您可以限制每个用户的请求
  • 注册和非注册用户的验证码
  • IP 速率限制
  • 需要 JavaScript - 编写一个可以读取 JS 的抓取工具更难
  • 机器人阻止和机器人检测(例如请求率、隐藏链接陷阱)
  • 数据中毒。放入没人想要的书籍和链接,这会阻止盲目收集所有内容的机器人的下载。
  • 突变。经常更换模板,以免爬虫找不到想要的内容。

请注意,您可以非常灵活地使用验证码。

例如:每个IP每天的第一本书不受验证码保护。但为了访问第二本书,需要解决验证码。

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

防止网页抓取 的相关文章

随机推荐

  • 使用 AVAudioEngine 播放 AVAudioPCMBuffer 中的音频

    我有两节课MicrophoneHandler and AudioPlayer 我已经成功使用AVCaptureSession使用批准的答案窃听麦克风数据here https stackoverflow com questions 33850
  • ServiceStack 返回 JSV 而不是 JSON

    我有一个使用 ServiceStack 创建的服务 最近我更新了 ServiceStack 库 现在我收到的是 JSV 响应而不是 JSON 响应 该请求看起来像 POST http localhost api rest poll crea
  • 如何阻止用户在 XPages 中打开新的浏览器会话

    我有一个前端文档锁定过程 它创建一个包含 UNID 用户名 时间的应用程序范围变量 然后是一个每 30 秒更新此信息的计时器 如果有人尝试打开文档进行编辑 我会检查 使用 UNID 看看其他人是否拥有该文档 如果时间大于 30 秒 我会取消
  • 点击没有 jQuery UI 的 jQuery 弹跳效果

    我找不到仅使用 jQuery 动画来制作 div 弹跳的动画解决方案 类似的东西不起作用 bounce click function this effect bounce times 3 300 我不想使用 jQuery UI 或任何外部插
  • php正则表达式读取选择表单

    我有一个带有选择表单的源文件 其中包含一些选项 如下所示
  • 需要工作但导入不工作

    我有一个 actions js 文件正在导出这样的操作 export var toggleTodo id gt return type TOGGLE TODO id 但是当我使用 es6 import 导入它时出现错误 Uncaught T
  • 如何动态地将分支目标提示到 x64 CPU?

    我想知道如何用 C C 或汇编语言为 x64 处理器编写高效的跳转表 输入是预先已知的 但不可能通过算法来预测 假设我可以在输入流中查看尽可能远的位置 有什么方法可以动态地告诉 CPU 下一个分支将转到哪个地址 本质上 我想以编程方式更新分
  • 没有模板引擎的 Node.js

    我是 Node js 新手 正在尝试学习 据我了解 使用模板引擎 例如 Jade 是很常见的 甚至对于 CSS 例如 Stylus 也是如此 老实说 我见过的所有教程在布局方面都涉及模板引擎 问题是我不想使用模板引擎 因为我认为它不必要地复
  • javascript客户端到Python服务器:获取请求后XMLHttpRequest响应文本为空

    我正在尝试编写一个 chrome 扩展 它能够向 python 服务器脚本发送 接收数据 目前 我正处于 js 脚本发出 GET 请求的阶段 唯一的问题是 responseText 始终为空 即使 python 脚本以文本响应 popup
  • 高质量图像缩放库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想在 C 中缩放图像 其质量级别与 Photoshop 一样好 有没有任何 C 图像处理库可以完成这项工作 这是一个注释良好的图像操作帮
  • For循环不推断无符号整数[重复]

    这个问题在这里已经有答案了 根据 F 中 for to 循环的 MSDN 文档 标识符的类型是从开始和结束表达式的类型推断出来的 这些表达式的类型必须是 32 位整数 但是 使用下面的代码 我收到以下编译时错误 for bar 0u to
  • 在 php 中使用 jquery 每 5 秒更改图片 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 请帮助我 我是 jQuery 新手 这是我的代码 img src default jpg img src a jpg img src b
  • 避免模​​块名称修改的干净方法?

    我正在使用 Python 的 ctypes 来连接 C 库文件 运行类型基因 http code google com p ctypesgen 创建一个我可以导入的包装模块 例如 api py 许多 C 函数和宏的名称都以双下划线开头 Py
  • 将 Ajax/UI JS 框架(ext、jquery-ui)与 MVC PHP 框架(zend、symfony)结合起来是个好主意吗?

    我意识到这是一个非常普遍的问题 但我想我并不是真的在寻找明确的答案 作为 PHP 框架的新手 我很难理解它 Javascript 框架 尤其是 UI 扩展 似乎有类似 MVC 的方法 将 JS 代码与设计分开 在后端使用额外的 MVC 框架
  • 为什么 std::map 需要一个运算符< 以及如何编写一个

    我正在使用 std map 库 我试图将一堆数据放入地图中 我创建了一个地图来保存日期 time t 和浮点数 但是当我尝试添加它们时 我的编译器告诉我 错误 与 operator 我尝试创建一个重载的 这是我正在运行它的类 class M
  • 对 Material UI Select 组件的更改做出反应测试库

    我正在尝试测试onChange的事件选择组件 https material ui com api select using 反应测试库 https github com kentcdodds react testing library 我使
  • PowerShell:更改文件夹或文件的时间戳(创建日期)

    对于 Windows 10 上的 PowerShell 命令 我遇到了奇怪的行为 要更改文件的创建日期 我使用 Get ChildItem C testFile1 txt CreationTime 01 11 2005 06 00 36 要
  • jQuery/原型冲突

    我正在使用 jQuery hoverIntent js 脚本来构建大型下拉菜单系统 其灵感来自于 Son Tonaka 的大型下拉菜单 w CSS 和 jQuery sohtanaka com web design mega drop do
  • List 抛出 ConcurrentModificationException 但 set 不抛出 ConcurrentModificationException? [复制]

    这个问题在这里已经有答案了 我有以下两个java类 import java util public class ArrayListTest032 public static void main String ar List
  • 防止网页抓取

    我目前是开发一个应用程序的团队的一员 该应用程序包括前端客户端 通过这个客户端 我们发送用户数据 每个用户都有一个用户 ID 客户端通过 RESTful API 与我们的服务器对话 向服务器请求数据 例如 假设我们有一个书籍数据库 用户可以