什么是数据抓取?

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

Share facebook icon linkedin icon twitter icon email icon

数据抓取

学习目标

阅读本文后,您将能够:

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

什么是数据抓取?

数据抓取,以其最一般的形式,是指一种计算机程序从另一程序生成的输出中提取数据的技术。数据抓取通常体现在网页抓取中,网页抓取是使用应用程序从网站提取有价值信息的过程。

Data Scraping

为什么要抓取网站数据?

通常,公司不希望其独特内容被下载并重新用于未经授权的目的。因此,它们不会通过开放的API或其他便于访问的资源公开所有数据。而另一方面,不管网站怎样限制访问权限,抓取机器人都会尝试对网站数据进行抓取。这样,网页抓取机器人与各种内容保护策略之间就存在一种猫捉老鼠的游戏,道高一尺,魔高一丈。

尽管执行起来可能很复杂,但网页抓取的过程非常简单。网页抓取分为3个步骤:

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

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

  1. 内容抓取–可以从网站上抓取内容以便复制依赖于该内容的独特产品或服务优势。例如,Yelp之类的产品依赖评论。竞争对手可以从Yelp中抓取所有评论内容,然后复制到自己的网站,让自己网站的内容开起来十分具有原创性。
  2. 价格抓取–通过抓取价格数据,竞争对手可以汇总其竞品信息。这可以使他们拥有独特的定价优势。
  3. 联络信息抓取–许多网站明文包含电子邮件地址和电话号码。通过抓取诸如在线员工目录之类的位置,抓取机器人能够汇总联络信息,以尝试大规模邮件发送、自动呼叫或恶意的社交工程攻击。这是垃圾信息发送者和诈骗者寻找新目标的主要方法之一。

如何防护网页抓取?

通常,网站访问者可以看到的所有内容都必须转移到访问者的计算机上,并且访问者可以访问的任何信息都可以被机器人抓取。

有方法能够限制可能发生的抓取量。以下是三种限制数据抓取工作的方法:

  1. 速率限制请求 – 对于访问网站并点击网站上一系列网页的真实用户,他们与网站交互的速度普遍是可预测的;例如,不可能有人类用户每秒浏览100个网页。反而,计算机可以比人类更快地发出数量级的请求,新式的数据抓取机器人更可能使用毫无节制的抓取技术,试图快速抓取整个网站。通过限制特定IP 地址在给定时间时段内发出的最大请求数,网站能够保护自己免受侵略性请求的影响,并限制在特定时间范围中可能发生的数据抓取量
  2. 定期修改HTML标记–数据抓取机器人依靠持续一直的格式化来有效地遍历网站内容并解析和保存有用的数据。中断此工作流程的一种方法是定期更改HTML标记的元素,以使持续性的抓取变得更加复杂。通过嵌套HTML元素或更改标记的其他方面,简单的数据抓取工作将受到阻碍或阻止。对于某些网站,每次呈现网页时,都会随机化并实施某种形式的内容保护修改。另外有些网站有时会更改其标记代码,以防止长期的数据抓取行为。
  3. 将CAPTCHA用于大量数据的请求者– 除了使用速率限制解决方案外,减慢内容抓取速度的另一个有用步骤是要求网站访问者完成计算机难以实现的挑战。尽管人类可以合理地应对这个挑战,但一个在进行数据抓取的无脑浏览器*极有可能无法通过该挑战,更不可能持续通过数个挑战。但是,持续不断的CAPTCHA测试可能会对真实用户的体验产生负面影响。

另一种不太常见的防护方法要求将内容嵌入例如图像类的媒体对象中。由于内容不存在于字符串中,因此复制内容要复杂得多,需要光学字符识别(OCR)才能从图像文件中提取数据。但这也会给需要从网站复制内容的真实用户带来麻烦,他们将不得不靠记忆或重新输入例如地址或电话号码之类的信息,而无法直接复制。

*无头浏览器是网页浏览器的一种,类似于Chrome或Firefox,但默认情况下它没有可视的用户界面,因此其移动速度比常见的网页浏览器快得多。本质上它是在命令行界面运行,无头浏览器可以避免呈现整个Web应用程序。数据抓取工具会编写机器人使用无头浏览器来更快地请求数据,因为没有人会去查看要抓取的每个页面。

如何完全防止抓取?

完全防止抓取网页的唯一方法是避免将内容完全放在网站上。但是,使用高级的机器人管理解决方案可以帮助网站几乎完全消除抓取机器人的访问权限。

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

爬网是指像谷歌这样的大型搜索引擎将它们的爬网程序(例如Googlebot)发送到网络以索引互联网内容时所进行的过程。另一方面,它通常是专门为从特定网站提取数据而构建的。

以下是抓取机器人与网页爬网程序机器人的3种不同行为:

  1. 抓取机器人会假装为网页浏览器,而爬网程序机器人会表明其目的,而不是试图蒙骗网站。
  2. 有时,抓取机器人会采取高级措施,例如填写表格或进行其他行为以进入网站的特定部分。爬网程序则不会。
  3. 抓取机器人通常会忽略robots.txt文件,该文件是一个文本文件,专门用于告诉爬网程序能解析哪些数据以及不能访问的区域。因为抓取器被设计为提取特定内容,所以它可以被设计专门抓取那些被明确禁止抓取的内容。

Cloudflare 机器人管理使用机器学习和行为分析来识别例如抓取器等恶意机器人,保护网站独特的内容并防止机器人滥用Web 属性。