什么是网络抓取?如何合法地抓取网络内容

什么是网络抓取?如何合法地抓取网络内容

有没有想过一次性比较多个网站的价格?或者是自动从你最喜欢的博客中提取一组文章?这一切都可以通过网络爬取实现。

网络爬取指的是使用软件从网站上提取内容和数据的过程。例如,大多数价格比较服务使用网络爬虫从几个在线商店读取价格信息。另一个例子是谷歌,它经常爬取或 “抓取 “网络,以索引网站。

当然,这些只是许多网络爬取使用案例中的两个。在这篇文章中,我们将深入了解网络爬取者的世界,学习他们如何工作,并看看一些网站如何试图阻止他们。

  1. 什么是网络抓取?
  2. 网络抓取有什么用处?
  3. 网络抓取是如何工作的?

什么是网络抓取?

网络抓取是用于自动提取–或 “爬取”–网络上的数据的一系列做法。

网络爬取使用软件从网站上收集数据

网络爬取使用软件从网站上收集数据

网络抓取的其他术语包括 “内容爬取“或 “数据抓取”。不管它被称为什么,网络抓取是一种极其有用的在线数据收集工具。网络抓取的应用包括市场研究、价格比较、内容监控等等。

但是,网络抓取究竟 “爬取”什么–以及它是如何做到的?它甚至合法吗?难道一个网站不希望有人来抓取他们的数据吗?

答案取决于几个因素。然而,在我们深入研究方法和使用案例之前,让我们仔细看看什么是网络抓取,以及它是否符合道德。

我们可以从网络上 “抓取”出什么?

抓取所有种类的网络数据是可能的。从搜索引擎和RSS订阅到政府信息,大多数网站都向抓取者、爬虫和其他形式的自动数据收集提供他们的公开数据。

以下是一些常见的例子。

你可以从网上爬取的数据类型

你可以从网上爬取的数据类型

然而,这并不意味着这些数据总是可用的。根据网站的情况,你可能需要采用一些工具和技巧来获得你所需要的东西–假设这些数据首先是可以访问的。例如,许多网络抓取器不能从视觉内容中提取有意义的数据。

在最简单的情况下,网络抓取可以通过网站的API或应用编程接口来完成。 当一个网站提供其API时,网络开发者可以利用它以方便的格式自动提取数据和其他有用的信息。这几乎就像网站主人为你提供了你自己的 “管道”,让你进入他们的数据。说到热情好客!

当然,情况并不总是这样–许多你想抓取的网站不会有你可以使用的API。此外,即使有API的网站也不一定会以正确的格式向你提供数据。

因此,只有当你想要的网络数据不能以你需要的形式提供时,网络抓取才是必要的。无论这意味着你想要的格式不可用,还是网站根本没有提供完整的数据范围,网络抓取使你有可能得到你想要的东西。

虽然这很好,但它也提出了一个重要问题。如果某些网络数据受到限制,那么刮取这些数据是否合法?正如我们很快就会看到的,这可能是一个有点灰色的区域。

对于一些人来说,网络抓取的想法几乎可以说是偷窃。毕竟,你是谁,可以随便 “拿 “别人的数据?

值得庆幸的是,网络抓取本身并不违法。当一个网站发布数据时,它通常是向公众开放的,因此,可以自由地刮取。

例如,由于亚马逊向公众提供产品价格,刮取价格数据是完全合法的。许多流行的购物应用程序和浏览器扩展程序正是出于这一目的而使用网络抓取,所以用户知道他们得到的是正确的价格。

然而,并非所有的网络数据都是为公众服务的,这意味着并非所有的网络数据都是合法的,可以抓取。当涉及到个人数据和知识产权时,网络抓取可能很快变成恶意网络抓取,导致诸如DMCA移除通知等处罚。

什么是恶意的网络抓取?

恶意网络抓取是指网络抓取发布者无意或不同意分享的数据。虽然这些数据通常是个人数据或知识产权,但恶意抓取可以适用于任何不属于公众的东西。

正如你可能想象的那样,这个定义有一个灰色区域。虽然许多类型的个人数据受到法律的保护,如《通用数据保护条例》(GDPR)和《加州消费者隐私法》(CCPA),但其他的则没有。但这并不意味着在某些情况下,这些数据的抓取是不合法的。

CCPA对处理个人数据保持严格的标准

CCPA对处理个人数据保持严格的标准

例如,假设一个虚拟主机 “意外地 “将其用户信息提供给公众。这可能包括一份完整的姓名、电子邮件和其他信息清单,这些信息在技术上是公开的,但也许并不打算分享。

虽然从技术上来说,抓取这些数据也是合法的,但这可能不是最好的主意。数据是公开的,但不一定意味着网络主机已经同意它被抓取,即使它缺乏监督已经使它公开。

这种 “灰色地带 “使网络抓取在某种程度上具有混合的声誉。虽然网络抓取绝对是合法的,但它很容易被用于恶意或不道德的目的。因此,许多虚拟主机不喜欢他们的数据被抓取–不管它是否合法。

另一种恶意的网络抓取是 “过度抓取”,即抓取者在一定时期内发送过多的请求。太多的请求会给网络主机带来巨大的压力,他们更愿意把服务器资源花在真正的人身上,而不是抓取机器人。

作为一般规则,少用网络抓取,只有在你完全确定数据是用于公共用途时才使用。记住,仅仅因为数据是公开的,并不意味着抓取它是合法或道德的。

网络抓取的用途是什么?

在其最好的情况下,网络抓取在许多行业都有许多有用的用途。截至2021年,几乎一半的网络抓取都是用于支持电子商务战略

网络抓取在每个行业都有应用

从电子商务到房地产,网络抓取在每个行业都有应用(来源:Datahut

网络抓取已经成为许多数据驱动过程的支柱,从跟踪品牌和提供最新的价格比较到进行有价值的市场研究。以下是一些最常见的情况。

市场研究

你的客户在做什么?你的线索呢?你的竞争对手的定价与你相比如何?你是否有信息来创建一个成功的内向型营销内容营销活动

这些只是构成市场研究基石的几个问题,而这些问题也正是可以通过网络抓取来回答的。由于这些数据大部分都是公开的,网络抓取已经成为营销团队的一个宝贵工具,他们希望在不需要进行耗时的人工研究的情况下关注他们的市场情况。

业务自动化

网络抓取用于市场研究的许多好处也适用于商业自动化。

在许多业务自动化任务需要收集和压缩大量数据的情况下,网络抓取是非常有价值的–尤其是在这样做会很麻烦的情况下。

例如,假设你需要从十个不同的网站收集数据。即使你从每个网站收集相同类型的数据,每个网站可能需要不同的提取方法。与其在每个网站上手动进行不同的内部流程,你可能会使用网络刮刀来自动完成。

线索生成

如果市场研究和业务自动化还不够,网络抓取还可以不费吹灰之力产生有价值的领导名单。

尽管你需要精确地设定你的目标,但你可以使用网络抓取来产生足够的用户数据,以创建结构化的潜在客户名单。当然,结果可能会有所不同,但这比你自己建立线索名单更方便(也更有希望)。

价格跟踪

提取价格–也被称为价格抓取–是网络抓取的最常见应用之一。

这里有一个来自流行的亚马逊价格追踪应用Camelcamelcamel的例子。该应用定期抓取产品价格,然后在图表上比较它们随时间的变化。

Camelcamelcamel跟踪价格

在Camelcamelcamel价格跟踪应用程序中显示的亚马逊价格历史

价格可能会出现剧烈波动,甚至是每天都在波动(看看5月9日前后的价格突然下降!)。通过访问历史价格趋势,用户可以检查他们所支付的价格是否理想。在这个例子中,用户可能会选择等待一周左右,希望能节省10美元。

尽管它很有用,但价格抓取也有一些争议。由于许多人希望实时更新价格,一些价格跟踪应用程序通过使某些网站的服务器请求过载,很快就成为恶意的。

因此,许多电子商务网站已经开始采取额外措施,完全阻止网络抓取者,我们将在下一节介绍。

新闻和内容

没有什么比保持了解更有价值的了。从监测声誉到跟踪行业趋势,网络抓取是保持信息的一个宝贵工具。

虽然一些新闻网站和博客已经提供了RSS提要和其他简单的接口,但它们并不总是常规的–也不像以前那样普遍。因此,聚集你需要的确切的新闻和内容往往需要某种形式的网络抓取。

品牌监测

当你在抓取新闻的时候,为什么不检查一下你的品牌?对于那些有大量新闻报道的品牌来说,网络抓取是一个非常有价值的工具,它可以让你保持最新的信息,而不必翻阅无数的文章和新闻网站。

网络抓取对于检查一个品牌的产品或服务的最低价格(MAP)也很有用。虽然这在技术上是一种价格抓取的形式,但它是一种关键的洞察力,可以帮助品牌确定他们的定价是否符合客户的期望。

房地产

如果你曾经搜索过公寓或买过房子,你就知道有多少东西需要分类。由于数以千计的房源分散在多个房地产网站上,要准确找到你要找的东西是很难的。

网络抓取房地产数据

网络抓取房地产数据

许多网站使用网络抓取,将房地产房源汇总到一个单一的数据库中,使这一过程更加容易。流行的例子包括Zillow和Trulia,尽管还有许多其他网站遵循类似的模式。

然而,聚合房源并不是网络抓取在房地产领域的唯一用途。例如,房地产商可以使用抓取应用程序来保持对平均租金和销售价格、正在销售的房产类型和其他有价值的趋势的了解。

网络抓取是如何工作的?

网络抓取听起来很复杂,但实际上非常简单。

虽然方法和工具各不相同,但你所要做的就是找到一种方法,(1)自动浏览你的目标网站,(2)在你到达那里后提取数据。通常情况下,这些步骤是用抓取器和爬虫来完成的。

抓取器和爬虫

原则上,网络抓取的工作原理几乎与马和犁相同。

爬虫和抓取器类似于马和犁

爬虫和抓取器类似于马和犁

当马引导犁时,犁会转动并打破土地,帮助为新的种子让路,同时将不需要的杂草和作物残留物重新耕种到土壤中。

除了马之外,网络刮地也没有什么不同。在这里,爬虫扮演着马的角色,引导刮刀–实际上是我们的犁–穿过我们的数字领域。

以下是它们的作用:

  • 爬虫(有时被称为蜘蛛)是浏览网络的基本程序,同时搜索和索引内容。虽然爬虫指导网络抓取者,但它们并不专门用于这一目的。例如,谷歌等搜索引擎使用爬虫来更新网站的索引和排名。爬虫通常可以作为预建工具,允许你指定一个给定的网站或搜索词。
  • 抓取器做的是快速从网站中提取相关信息的肮脏工作。由于网站是以HTML为结构的,刮削器使用正则表达式(regex)、XPath、CSS选择器和其他定位器来快速查找和提取某些内容。例如,你可以给你的网络抓取器一个正则表达式,指定一个品牌名称或关键词。

如果这听起来有点让人不知所措,不要担心。大多数网络抓取工具包括内置的爬虫和抓取器,即使是最复杂的工作也能轻松完成。

基本的网络抓取过程

在其最基本的层面上,网络抓取可以归结为几个简单的步骤:

  1. 指定你要抓取的网站和网页的URLs
  2. 向URLs发出HTML请求(即 “访问 “网页)。
  3. 使用定位器,如正则表达式,从HTML中提取所需信息
  4. 将数据保存为结构化格式(如CSV或JSON)。

正如我们将在下一节看到的,各种网络抓取工具可以用来自动执行这些步骤。

然而,这并不总是那么简单–尤其是在进行大规模的网络抓取时。网络抓取的最大挑战之一是在网站改变布局或采取反抓取措施时保持你的抓取器的更新(不是所有东西都能常青)。如果你一次只抓取几个网站,这还不算太难,但抓取更多的网站就会很快变得麻烦了。

为了尽量减少额外的工作,重要的是要了解网站如何试图阻止抓取者–这一点我们将在下一节中学习。

网络抓取工具

许多网络抓取功能都是以网络抓取工具的形式出现的。尽管有许多工具可用,但它们在质量、价格和(不幸的)道德方面差别很大。

按使用情况分类的流行网络抓取工具

按使用情况分类的流行网络抓取工具

在任何情况下,一个好的网络抓取工具将能够可靠地提取你需要的数据,而不会遇到太多的反抓取措施。这里有一些需要寻找的关键特征。

  • 精确的定位器:网络抓取器使用定位器,如正则表达式和CSS选择器来提取特定数据。你选择的工具应该允许你有几个选项来指定你要找的东西。
  • 数据质量:大多数网络数据是非结构化的–即使它在人眼里呈现得很清楚。处理非结构化的数据不仅是混乱的,而且很少有好的结果。一定要寻找能在交付前清理和分类原始数据的刮削工具。
  • 数据交付:根据你现有的工具或工作流程,你可能需要以特定的格式(如JSON、XML或CSV)收集数据。与其自己转换原始数据,不如寻找具有你所需格式的数据交付选项的工具。
  • 反刮擦处理:网络抓取只有在其绕过阻止的能力上才是有效的。虽然你可能需要使用额外的工具,如代理和VPN来解禁网站,但许多网络抓取工具通过对其爬虫进行小的修改来做到这一点。
  • 透明的价格:尽管有些网络抓取工具是免费使用的,但更强大的选项是有代价的。密切关注定价方案,特别是如果你打算扩大规模并抓取许多网站。
  • 客户支持:虽然使用预先建立的工具是非常方便的,但你并不总是能够自己修复问题。因此,要确保你的供应商也提供可靠的客户支持和故障排除资源。

流行的网络抓取工具包括OctoparseImport.ioParsehub.。

保护免受网络抓取

让我们把情况调转一下。假设你是一个虚拟主机,但不希望其他人使用所有这些巧妙的方法来刮取你的数据。你能做些什么来保护自己?

除了基本的安全插件外,还有一些有效的方法来阻止网络抓取者和爬虫。

常见的反抓取技术

常见的反抓取技术

  • 拦截IP地址:许多虚拟主机都会跟踪其访问者的IP地址。如果主机注意到一个特定的访问者产生了许多服务器请求(例如在一些网络抓取者或机器人的情况下),那么他们可能会完全封锁该IP。然而,抓取者可以通过代理或VPN改变他们的IP地址来超越这些封锁。
  • 设置robots.txt:robots.txt文件让虚拟主机告诉抓取者、爬虫和其他机器人什么可以访问,什么不能访问。例如,一些网站使用robots.txt文件来保持隐私,告诉搜索引擎不要索引它们。虽然大多数搜索引擎尊重这些文件,但许多恶意形式的网络抓取者并不尊重。
  • 过滤请求:每当有人访问一个网站时,他们就在向网络服务器 “请求 “一个HTML页面。这些请求通常对网络主机是可见的,他们可以查看某些识别因素,如IP地址和用户代理,如网络浏览器。虽然我们已经涵盖了阻止IP,但网络主机也可以通过用户代理进行过滤。

例如,如果网络主机注意到许多来自同一用户的请求,运行的是早已过时的Mozilla Firefox版本,那么他们可以简单地阻止该版本,并在这样做的同时,阻止机器人。这些阻止功能在大多数托管计划中都有。

  • 显示验证码:你是否曾经在访问一个页面之前不得不输入一串奇怪的文字或点击至少六个帆船?那么你已经遇到了 “验证码“或完全自动化的公共图灵测试,用于区分计算机和人类。虽然它们可能很简单,但它们在过滤网络抓取者和其他机器人方面却非常有效。
  • Honeypots:“Honeypots”是一种用于吸引和识别不需要的访问者的陷阱。在网络抓取者的情况下,网络主机可能在他们的网页上包括隐形的链接。虽然人类用户不会注意到,但机器人在滚动时将自动访问这些链接,使虚拟主机能够收集(并阻止)他们的IP地址或用户代理。

现在让我们再把情况转回来。抓取者可以做什么来克服这些保护措施?

虽然一些反抓取措施很难被绕过,但有几种方法往往很有效。这些方法涉及以某种方式改变你的抓取者的识别特征。

代理可以帮助避免IP禁令和扩大网络抓取工作的规模

代理可以帮助避免IP禁令和扩大网络抓取工作的规模

  • 使用代理或VPN:由于许多网络主机根据其IP地址阻止网络抓取者,通常有必要使用各种IP地址来保证访问。代理和虚拟私人网络(VPN)是这项任务的理想选择,尽管它们有一些关键的区别。
  • 定期访问你的目标:大多数(如果有的话)网络抓取器会告诉你它们何时被封锁。因此,重要的是要定期检查你的抓取地点,看看你是否被封锁了,或者网站的格式是否已经改变。请注意,在某些时候几乎可以保证其中之一。

当然,如果你负责任地使用网络抓取,这些措施都不是必要的。如果你决定实施网络抓取,记得要少刮一点,并尊重你的网站主机。

小结

虽然网络抓取是一个强大的工具,但它也对许多虚拟主机构成了强大的威胁。无论你在服务器的哪一边,每个人都有既得利益,以确保网络抓取被负责任地使用,当然,是为了做好。

评论留言