防止网页抓取

2023-12-19

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

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

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

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

所以基本上问题是:

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

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

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

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


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

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

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

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

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

防止网页抓取 的相关文章

  • 如何使用 scrapy 合约?

    Scrapy 合约问题 我开始研究 scrapy 框架 也实现了一些蜘蛛 提取 但我无法为蜘蛛编写单元测试用例 因为合同 scrapy提供的包文档没有正确的程序来编写 测试用例 请帮我解决这件事 Yes 蜘蛛合约 http doc scra
  • 使用 BeautifulSoup 在 python 中抓取多个页面

    我已经设法编写代码来从第一页中抓取数据 现在我不得不在这段代码中编写一个循环来抓取接下来的 n 页 下面是代码 如果有人可以指导 帮助我编写从剩余页面中抓取数据的代码 我将不胜感激 Thanks from bs4 import Beauti
  • 在单词后获取文本——R Webscraping

    几周前 这里有人帮助我极大地获得了名人数据库中所有链接的列表 我能够运行此代码并获得以下输出 library purrr library rvest url base lt https www nndb com lists 494 0000
  • R 中的网页抓取表

    完全菜鸟试图抓取此页面上的表格 我所能做的最远的是加载 rvest 包 我的问题是 我找不到合适的元素 我通过检查器尝试的元素是 table w782 comm lsjz 但它返回长度为0的列表 并在 html table 之后执行 gt
  • Google 文档从脚本调用 ImportXML

    我在 google 文档表中使用 ImportXML 从 sistrix api 获取数据 它工作正常 但我遇到了一张纸中 50 个 ImportXML 命令的限制 因此 我使用了一个脚本 将 ImportXML 命令写入单元格 临时 公式
  • Javascript 链接在 selenium excel vba 中没有响应

    我正在尝试做这样一行点击 javascript 链接的操作 FindElementById ctl00 ContentPlaceHolder1 LinkButton4 WaitDisplayed True 3000 Click 这条线没有任
  • PHPQuery WebBrowser 插件 - 使用 cookies

    我正在尝试使用 PHPQuery 的 WebBrowser 插件登录网站 我能够成功登录 但我不确定如何重用上一次调用中的 cookie 到下一次调用 client phpQuery browserGet https website com
  • 如何在 R 中抓取受保护的页面(https 链接)(使用 XML 包中的 readHTMLTable)?

    关于如何使用 XML 包中的 readHTMLTable 有很好的答案 我使用常规 http 页面做到了这一点 但是我无法解决 https 页面的问题 我正在尝试阅读该网站上的表格 网址字符串 library RTidyHTML libra
  • 如何从网站中提取冠状病毒病例?

    我正在尝试从网站中提取冠状病毒 https www trackcorona live https www trackcorona live 但我得到了一个错误 这是我的代码 response requests get https www t
  • 如何保存包含框架/iframe 的完整 html 页面?

    在网页抓取期间 我想将当前页面的 html 保存到文件中以供以后调试 browser html在大多数情况下有帮助 但是当页面包含 iframe frame 时 它 的内容不会返回browser html 我必须用类似的东西单独得到它bro
  • 如何保护我的网站免遭 HTTrack 或其他软件的翻录?

    我最近获得了批准的网站模板主题森林 http themeforest net 我的网站流量过多 并注意到我在 Themeforest 上的演示被 HTTrack 等某些软件破坏 如果这种情况持续下去 该产品的销量最终可能会下降 那么 有什么
  • 使用查询选择器从 VBA 中抓取

    我使用了该网站的代码来提取数据site https bazashifer ru proflist profnastil Option Explicit Public Sub GetInfo Dim sResponse As String i
  • 使用 Python 从网站下载所有 pdf 文件

    我遵循了几个在线指南 试图构建一个可以识别并从网站下载所有 pdf 的脚本 从而避免我手动执行此操作 到目前为止 这是我的代码 from urllib import request from bs4 import BeautifulSoup
  • 为什么第二个 request.session cookies 返回空?

    我想使用 requests Session post 登录网站 但是当我已经登录主页 然后进入帐户页面时 看来cookies还没有保存 因为cookies是空的 而且我无法进入正确的帐户页面 import requests from bs4
  • 使用 selenium 和 python 来提取 javascript 生成的 HTML?萤火虫?

    这里是Python新手 我遇到的是数据收集问题 我在这个网站上 当我用 Firebug 检查我想要的元素时 它显示了包含我需要的信息的源 然而常规源代码 没有 Firebug 不会给我这个信息 这意味着我也无法通过正常的 selenium
  • 如何从 ISI Web of Knowledge 检索有关期刊的信息?

    我正在从事一些预测文章引用计数的工作 我遇到的问题是我需要 ISI Web of Knowledge 中有关期刊的信息 他们逐年收集这些信息 期刊影响因子 特征因子 但无法一次下载所有一年期期刊信息 只有 标记全部 选项 该选项始终标记列表
  • 写入抓取数据的 csv 文件时如何拆分项目名称

    我有兴趣使用 R 从网上抓取的数据创建 csv 或类似的 Excel 兼容文件 到目前为止 我通过执行以下操作来存储数据 require textreadr spiegel lt read html http www spiegel de
  • 即使收到 200 状态代码也重试 Scrapy 请求

    我正在抓取一个网站 有时会返回 200 但在 response body 中没有任何文本 当我尝试使用 Selector 解析它时会引发 AttributeError 是否有一种简单的方法来检查以确保正文包含文本 如果没有 则重试请求 直到
  • 在搜索栏中输入查询并抓取结果

    我有一个数据库 其中包含不同书籍的 ISBN 号 我使用 Python 和 Beautifulsoup 收集了它们 接下来我想为书籍添加类别 书籍类别有一个标准 一个网站叫https www bol com nl https www bol
  • 如何使用 Python 抓取网站中嵌入的表格

    这是我正在尝试抓取的网站 https clinicaltrials gov ct2 results term wound care https clinicaltrials gov ct2 results term wound care 具

随机推荐

  • 使用 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 与我们的服务器对话 向服务器请求数据 例如 假设我们有一个书籍数据库 用户可以