网页抓取和网页爬取的区别

译文
网络
解网络抓取和网络爬取(两种有价值的数据收集技术)之间的区别,以及如何更好地使用这些重要的业务工具。

【51CTO.com快译】人们有时会错误地将 “网络抓取”和 网络爬取”这两个术语作为同义词使用。尽管它们密切相关,但它们是不同的动作,需要适当描述——至少这样你就可以知道某个时间点哪一个最适合你的需要,这样你就能理解它们的区别。

让我们深入了解这两个 Web 操作中的本质。

[[436558]]

什么是网页抓取?

顾名思义,网络抓取是一种从网络中提取或清除信息的行为。无论目标数据如何,网页抓取都可以使用脚本语言和专用抓取工具实现自动化,或者通过复制和粘贴手动完成。当然,手动网页抓取并不实用。虽然编写抓取脚本可能会有所帮助,但它可能成本高且技术性强。

然而,使用自动化的无代码网络抓取工具可以使一过程变得简单和快速,而不会造成巨额损失。

为什么要抓取网页?

随着每天数百万条信息被删除,数据抓取现在已成为互联网新趋势的一部分。尽管如此,Statista仍然估计,仅在 2020 年互联网上生成的数据量就为 64.2 泽字节。该公司预测,到 2025 年这个值将增加 179% 以上。

大型组织和个人已将网络上可用的数据用于包括但不限于以下目的:预测营销、股价预测、销售预测、竞争监控等目的。有了这些应用程序,数据明显是当今许多企业增长的驱动力。

此外,随着世界越来越倾向于自动化,数据驱动的机器正在涌现。这些机器虽然精准,但使用机器学习技术获取数据。机器学习的严格规则要求算法随着时间的推移从大数据中学习模式。因此,在没有数据的情况下训练机器可能是不可能的。尽管如此,电子商务网站上的图像、文本、视频和产品都是推动人工智能世界发展的宝贵信息。

因此,现有公司、初创企业和个人为何求助于网络以收集尽可能多的信息并不牵强。这意味着在当今的商业世界中,您拥有的数据越多,就越有可能领先于竞争对手。因此,网页抓取变得必不可少

网络爬虫是如何工作的?

网络爬虫使用超文本传输协议 (HTTP) 从使用 GET 方法的网页请求数据。在大多数情况下,一旦收到来自网页的有效响应,抓取工具就会从客户端收集更新的内容。它通过将自身附加到包含易于更新的目标数据的特定 HTML 标签来实现。

但是,有许多网页抓取方法。例如,抓取机器人可以进化为直接从另一个网站的数据库请求数据,从而从提供商的服务器获取实时更新的内容。这种从数据抓取器向另一个数据库发出的请求通常要求提供数据的网站提供应用程序编程接口 (API),该接口使用定义的身份验证协议将数据抓取器连接到其数据库。

例如,使用 Python 创建的request.get Web 抓取工具可以使用该方法从源检索数据或使用专用的 Web 抓取库,例如BeautifulSoup 从网页收集呈现的内容。使用 JavaScript 构建的那些通常依赖于fetch 或Axios连接源并从源获取数据。
获取数据后,抓取工具通常会将收集到的信息转储到专用数据库、JSON 对象、文本文件或 Excel 文件中。并且由于收集的信息不一致,数据清理通常在抓取之后进行。

网页抓取方法

无论您是使用第三方自动化工具还是从头开始编写代码,网页抓取都涉及这些方法中的任何一种或组合:

1. DOM 或标签解析:DOM 解析涉及网页的客户端检查,以创建显示所有节点的深入 DOM 树。因此,可以轻松地从网页中检索相关数据。
2. 标签抓取:在这里,网络抓取工具针对网页上的特定标签并收集其内容。例如,电子商务抓取工具可能会收集所有h2 标签中的内容,因为它们包含产品名称和评论。
3. HTTP API 请求:这涉及使用 API 连接到数据源。当目标是从数据库中检索更新的内容时,这会很有帮助。
4. 使用语义或元数据注释:此方法利用称为元数据的一组数据之间的关系以流行的方式提取信息。例如,您可能决定从网页中检索与动物和国家相关的信息。
5. Unix 文本抓取:文本抓取使用标准的 Unix 正则表达式从大量文件或网页中获取匹配数据。

什么是网络爬虫以及它是如何工作的?

虽然爬虫或蜘蛛机器人可能会在抓取网站的过程中下载网站的内容,但抓取并不是其最终目标。网络爬虫通常会扫描网站上的信息以检查特定指标。最终它会了解网站的结构及其全部内容。

爬虫的工作原理是将属于许多网页的唯一资源定位器 (URL) 收集到一个爬虫边界中。然后它使用站点下载器来检索内容,包括整个 DOM 结构,以创建浏览网页的副本。然后将这些存储到数据库中,在查询时可以将它们作为相关结果列表进行访问。

因此,网络爬虫是一种编程软件,它可以连续快速地在互联网上浏览内容,并根据请求组织它们以显示相关内容。

例如,Googlebot 和 Bingbot 等一些爬虫会根据多种因素对内容进行排名。一个显着的排名因素是在网站内容中使用自然出现的关键字。您可以将此视为卖家从批发商店收集不同商品,按重要性排列它们,并根据要求提供与买家最相关的商品。爬行机器人通常会分支到它在爬行网站时找到的相关外部链接。然后它也会对它们进行爬网和索引。

不过,除了 Googlebot 和 Bingbot 之外,还有许多爬虫。除了索引之外,他们中的许多人还提供特定的服务。

与网络爬虫不同,爬行机器人不断地在网上冲浪。本质上,它是自动触发的。然后,当它们在客户端更新时,它会从许多网站收集实时内容。在网站上移动时,他们识别并选取所有可爬取的链接以评估其所有页面上的脚本、HTML 标签和元数据,但受某种方式限制的除外。有时,蜘蛛机器人会利用站点地图来达到相同的目的。然而,带有站点地图的网站比没有站点地图的网站抓取速度更快。

网络爬虫的应用

与网络抓取不同,网络抓取有更多应用,从搜索引擎优化 (SEO) 分析到搜索引擎索引、一般性能监控等等。它的部分应用程序还可能包括抓取网页。

虽然您可能会手动缓慢地抓取网页,但您无法自己全部抓取,因为它需要更快、更准确的机器人;这就是为什么他们有时称爬虫蜘蛛机器人。

例如,在创建并启动您的网站后,Google 的抓取算法会在几天内自动抓取它,以在人们搜索时显示元标记、标题标记和相关内容等语义。

如前所述,根据其目标,蜘蛛机器人可能会抓取您的网站以提取其数据、在搜索引擎中为其编制索引、审核其安全性、将其与竞争对手的内容进行比较或分析其 SEO 合规性。但是,尽管它具有积极的一面,例如网络抓取工具,但我们无法在幕后扫除可能恶意使用爬虫的行为。

网络爬虫的类型

根据它们的应用程序,爬行机器人有多种形式。以下是不同类型及其作用的列表:

1. 以内容为中心的网络爬虫: 这些类型的蜘蛛机器人收集整个网络的相关内容。最终,它们的工作原理是根据相关网站的内容与搜索词的相关程度对相关网站的 URL 进行排名。因为它们专注于检索更多与利基相关的内容,所以内容或主题爬行机器人的优势在于它们使用的资源更少。
2. 内部爬虫: 一些组织为特定目的构建内部爬虫。这些可能包括用于检查软件漏洞的蜘蛛机器人。管理它们的责任通常由熟悉组织软件架构的程序员承担。
3. 连续网络爬虫: 也称为增量蜘蛛机器人。渐进式爬虫会在更新时反复浏览网站的内容。爬行可以是计划的或随机的,这取决于特定的设置。
4. 协同或分布式爬虫:分布式爬虫旨在优化使用单个爬虫时可能不堪重负的繁琐爬行活动。他们总是朝着同一个目标共同努力。因此,他们有效地分割了爬行工作负载。因此,它们通常比传统的更快、更有效。
5. 监控机器人: 无论来源是否授权,这些爬虫都使用独特的算法来监视竞争对手的内容和流量。即使他们不妨碍他们监控的网站的运行,他们也可能开始将流量从其他网站吸引到机器人的来源中。虽然人们有时会以这种方式使用它们,但它们的积极用途大于缺点。例如,一些组织在内部使用它们来发现其软件中的潜在漏洞或改进 SEO。
6. 并行蜘蛛机器人: 虽然它们也是分布式的,但并行爬虫只浏览和下载新鲜的内容。然而,如果网站不定期更新或包含旧内容,他们可能会忽略该网站。

网络爬虫和网络抓取之间的主要区别

为了缩小解释范围,以下是抓取和爬行之间的显着差异:

1. 与网络爬虫不同,爬虫不一定需要遵循将数据下载到数据库的模式。它可能会将其写入其他文件类型。
2. 网络爬虫更通用,可能在其工作流程中包括网络抓取。
3. 抓取机器人针对特定的网页和内容,因此它们可能不会一次从多个来源收集数据。
4. 与爬虫的手动触发数据收集性质不同,网络爬虫定期收集实时内容。
5. 虽然抓取机器人的目的是在提示时获取数据,但网络爬虫遵循特定的算法。如此多的科技公司使用它们来获得实时的网络洞察力,而且它也是可调度的。它的用例之一是定期的网络流量和 SEO 分析。
6. 爬网涉及串行整个网络下载和基于相关性的后续索引。另一方面,网络抓取不会索引检索到的内容。
7. 与功能更广泛且开发成本更高的爬行机器人不同,构建抓取工具具有成本效益且耗时更少。

网络爬虫和网络抓取之间的主要相似之处

虽然我们一直认为 crawling 和 scaping 在很多方面是不同的,但它们仍然有一些相似之处:

1. 它们都通过发出 HTTP 请求来访问数据。
2. 它们都是自动化的过程。因此,它们在数据检索过程中提供了更高的准确性。
3. 网络上随处可见的专用工具可用于抓取或抓取网站。
4. 当违反来源的数据保护条款时,它们都可以用于恶意目的。
5. 网络爬虫和抓取工具会受到彻底封锁——通过 IP 压制或其他方式。
6. 尽管工作流程可能不同,但它们都从 Web 下载数据。

您可以阻止在您的网站上爬虫和抓取吗?

当然,您可以加倍努力,摆脱这些机器人。但是,虽然您可能希望阻止爬虫程序访问您的内容,但在决定是否应该阻止爬虫程序时需要小心。与抓取机器人不同,蜘蛛机器人的抓取会影响您网站的增长。例如,阻止在您的所有网页上爬行可能会损害您的可发现性,因为您最终可能会掩盖具有流量驱动潜力的页面。

最好的做法是阻止它们访问私有目录,例如管理、注册和登录页面,而不是直接阻止机器人。这可确保搜索引擎不会将这些页面编入索引以将它们显示为搜索结果。

虽然我们之前提到过使用 robots.txt,但您可以使用许多其他方法来保护您的网站免受机器人入侵:

1. 您可以使用 CAPTCHA 方法阻止机器人。
2. 您还可以阻止恶意 IP 地址。
3. 监控流量的突然可疑增加。
4. 评估您的流量来源。
5. 打击已知或特定机器人。
6. 瞄准潜在的恶意机器人。

网络机器人可以绕过 CORS 和 Robots.txt 吗?

然而,当涉及不同来源的软件之间的交叉交互时,互联网遵循严格的规则。因此,如果资源服务器未授权来自另一个域的机器人,Web 浏览器会因此通过称为跨域资源策略 (CORS) 的规则阻止其请求。

因此,如果不使用其 API 或其他方式(如身份验证令牌)来授权请求,则很难直接从资源数据库下载数据。此外,当在网站上找到 robots.txt 时,它会明确说明抓取某些页面的规则。因此,它还可以防止机器人访问它们。

但是为了避免这种封锁,一些机器人通过在其请求标头中包含用户代理来模仿真实的浏览器。最终,CORS 将此类机器人视为浏览器,并授予它访问网站资源的权限。由于robots.txt 只阻止机器人,这种绕过很容易愚弄它并使其规则无能为力。

尽管采取了多项预防措施,但即使是科技巨头的数据仍然被抓取或抓取。因此,您只能尝试将控制措施落实到位。

结论

尽管存在差异,但正如您现在所看到的,网络爬行和抓取是有价值的数据收集技术。因此,由于它们在应用程序中存在一些关键差异,因此您必须明确定义您的目标,以了解在特定场景中使用的正确工具。此外,它们是您不想丢弃的重要业务工具。如前所述,无论您是出于某种原因打算抓取网页还是抓取网页,都有许多第三方自动化工具可以实现您的目标。所以请随意利用它们。

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:梁菲 来源: DZone
相关推荐

2012-05-17 15:11:23

linux

2009-12-02 15:50:41

PHP抓取网页内容

2010-07-16 11:16:40

Perl抓取网页

2023-03-09 15:55:17

JavaScriptURLCSS

2009-09-07 14:00:57

C#抓取网页

2021-02-15 10:32:06

C#Selenium网页

2009-07-31 10:34:41

ASP.NET抓取网页

2010-03-03 15:39:50

Python抓取网页内

2023-08-07 08:20:27

图解算法工具

2010-03-04 11:22:59

Python抓取网页图

2019-01-31 09:02:56

网页抓取设计模式数据

2020-10-26 15:09:35

Python爬虫网页数据

2009-04-28 10:03:35

PHPcURL抓取网页

2010-01-18 14:41:33

VB.NET抓取网页

2022-08-12 08:00:00

编码语言开发工具

2020-11-11 10:58:59

Scrapy

2019-06-17 15:00:48

Node.jsPDF前端

2019-11-19 15:43:07

人工智能软件技术

2020-10-12 08:19:43

Python爬虫网页数据

2012-09-10 10:59:49

网页设计jQueryCSS
点赞
收藏

51CTO技术栈公众号