什么是数据抓取?

攻击者能够利用 Web 抓取工具,以比预期更快的速度访问数据。 这可能导致数据被用于未经授权的用途。

学习目标

阅读本文后,您将能够:

  • 明确数据抓取的概念
  • 说明 Web 抓取背后的目的
  • 了解数据抓取的防护方法
  • 区分数据抓取与数据爬取

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

使用 Cloudflare 解决方案,抵御凭据填充和内容抓取之类的机器人攻击

什么是数据抓取?

一般来讲,数据抓取是指某个计算机程序用于从其他程序生成的输出中提取数据的一种技术。数据抓取通常表现为 Web 抓取,即:使用应用从网站提取有价值的信息的流程。

数据抓取

有哪些不同类型的 Web 抓取?为什么要抓取网站数据?

抓取机器人可以被设计用于多种用途,例如:

  1. 内容抓取 - 抓取网站的内容,以复制依赖于该内容的特定产品或服务的独特优势。以餐厅评论网站为例,竞争对手可以抓取所有评论,然后在自己的网站上复制内容,假装这些内容都是原创(并从中获益)。
  2. 价格抓取 - 竞争对手通过抓取定价数据,能够收集竞品信息。这可以让他们形成一种独特的优势,即:以低于竞争对手的价格出售,然后赢得业务。
  3. 联系信息抓取 - 许多网站包含纯文本的电子邮件地址和电话号码。通过抓取在线员工目录等页面,抓取工具可以汇总联系人详细信息,用于群发邮件列表、自动呼叫,或恶意社会工程学攻击。这是垃圾信息发送者和诈骗者用于寻找新目标的主要方法之一。

数据抓取和数据爬虫有什么区别?

爬取是指 Google 等大型搜索引擎在发送其机器人爬网程序(如 Googlebot)到网络中以建立互联网内容索引时所进行的过程。另一方面,抓取则是明确从特定网站提取数据的一种典型架构。

以下是抓取机器人和 Web 爬网程序机器人在行为实践方面的 3 个差异:

  诚实/透明 高级策略 遵守 robots.txt 文件规则
抓取机器人 伪装成 Web 浏览器,以避开那些阻止抓取工具的策略/措施。 可以采取填写表格等高级操作,来访问受限制的信息。 通常不考虑 robots.txt,也就是说,他们可能会明确地违背网站所有者的意愿,提取内容。
爬网程序机器人 会表明其目的,不会试图欺骗网站让其误以为爬网程序是真实存在的用户。 不会尝试访问网站上受限制的信息。 遵守 robots.txt 文件规则,也就是说,他们遵守网站所有者的意愿,确定需要解析哪些数据以及应该避免抓取哪些区域的数据。

如何抓取网站内容?

虽然 Web 抓取流程非常简单,但它的实施可能很复杂。整个流程可以总结为三个步骤:

  1. 首先,用于提取信息的代码片段(抓取机器人)会向特定网站发送 HTTP GET 请求。
  2. 当网站响应的时,抓取器将解析 HTML 文档以获取特定的数据模式。
  3. 数据提取后,被转换为抓取机器人设计者所设计的特定格式。

通常情况下,公司不希望其独特内容被下载并重新用于任何未经授权的目的,因此,它们可能会尽量不通过可用 API 或其他易于访问的资源来公开所有数据。而另一方面,不管网站怎样限制访问权限,抓取机器人都对抓取网站数据感兴趣。因此,Web 抓取机器人与各种内容保护策略之间形成了一场类似猫捉老鼠的游戏,双方都希望以策略制胜。

如何防护网页抓取?

智能抓取策略需要智能缓解策略。限制数据抓取活动的方法包括:

  1. 速率限制请求 - 对于访问网站并点击浏览其中一系列网页的真实用户,他们与网站交互的速度相当好做出预测;例如,人类用户不可能每秒浏览 100 个网页。另一方面,计算机发出的请求速度比人类用户快几个数量级,而新手数据抓取者可能会使用不受限制的抓取技术,尝试快速抓取整个网站的数据。通过限制特定 IP 地址在给定时间段内可以发出的最大请求数量,网站能够保护自己免遭恶意请求攻击,并限制该时间段内可能发生的数据抓取量。
  2. 定期修改 HTML 标记 - 数据抓取机器人依赖于一致的格式化来有效地遍历网站内容并解析数据。阻止此工作流程的一个方法,就是定期更改 HTML 标记元素。嵌套 HTML 元素或更改其他方面的标记,即可阻碍或化解简单的数据抓取活动。例如,一些网站在每一次渲染网页时,会随机进行某种形式的内容保护修改;其他网站则可能会每隔几周更新一次前端,以防止长期的数据抓取活动。
  3. 针对大量数据的请求者进行质询 - 减缓内容抓取工具速度的另一个有用步骤是,要求网站访问者回答计算机难以应答的质询。尽管人类用户可以合理地应答该质询,但无头浏览器 * 极有可能答不上来,当然更不可能持续通过数个质询。
  4. 还有一种不太常见的缓解方法,是将内容嵌入图像等媒体对象。由于内容并非以字符串形式存在,因此,复制内容的操作远比想象中复杂,需要使用光学字符识别 (OCR) 技术从图像文件中提取数据。

*无头浏览器是一种 Web 浏览器,与 Chrome 或 Firefox 非常相似,但默认情况下它没有可视化用户界面,因此,其运行速度比常规 Web 浏览器快得多。无头浏览器本质上是在命令行级别运行,因此,能够避免呈现整个 Web 应用。数据抓取工具会编写机器人,采用无头浏览器来更快速地提出获取数据请求,因为没有人类用户在浏览被抓取的每个页面

如何完全防止抓取?

完全阻止 Web 抓取的唯一方法,是避免将所有内容全部放在一个网站上。不过,采用先进的机器人管理解决方案,有助于网站阻止抓取机器人访问。

使用 Cloudflare 解决方案,防范抓取攻击

Cloudflare Bot Management使用机器学习和行为分析来识别恶意抓取活动,从而保护独特内容并防止机器人滥用 Web 资产。类似地,Super Bot Fight 模式旨在帮助小型企业抵御抓取工具和其他恶意机器人活动,同时让它们更深入了解其机器人流量。