返回博客

网络爬取与数据抓取:两者有何区别?

-
Web Crawling vs Web Scraping cover
目录
-

在线数据需求持续增长,如今人工智能大语言模型训练的兴起更是进一步推高了这一需求。数据抓取是从公开在线来源提取数据的高效方式之一。

不过您可能也听说过网络爬取。这两个过程通常相伴而生,但理解数据抓取工具与网络爬虫之间的区别十分重要。让我们先从定义讲起,最后再为您介绍网络爬取与数据抓取的最佳实践。

什么是网络爬取?

网络爬取是一种自动化流程,用于定位和浏览网站,主要聚焦于提取被称为 URL 的网站地址数据。它通常由搜索引擎用于为网站建立索引,以便在搜索结果中为用户展示最准确的信息,这一过程被称为索引。

网络爬取的技术难度很高、过程也颇为复杂,这是因为互联网上存在数十亿个网站以及其中数不清的反向链接。Google、Bing、DuckDuckGo 等搜索引擎都拥有自己的专有爬虫,也被称为蜘蛛(spider)。这些工具确保了网站索引所需的数据提取能够快速、准确且合规地完成。

但受益于网络爬取的不仅仅是搜索引擎。SEO 专员也会用它来分析内部反向链接、发现失效链接。网络爬取在网页存档领域也被广泛应用,因为蜘蛛会下载完整的 HTML 文件以保留网站结构。这一功能与数据抓取有所重叠。

由于网络爬虫可能给服务器带来较大压力,它们必须遵守 robots.txt 文件中规定的规则。这些文件会说明网站的哪些部分允许爬虫访问、哪些不应被索引。此外,强烈建议设置爬取延迟(crawl-delay)参数,为服务器留出响应时间,同时不影响爬取速度。

什么是数据抓取?

数据抓取同样是一种从公开来源提取数据的自动化流程,但与网络爬取不同,它的数据采集范围要广泛得多。数据抓取可以获取商品价格、标题、描述、评论、折扣信息等等。换句话说,只要是在线可获取的内容,数据抓取几乎都能采集到。

数据抓取高度依赖数据抓取工具,这一点和网络爬取依赖蜘蛛程序类似。借助Python 编程语言以及 Selenium、Puppeteer、Playwright等工具,数据抓取还具有很强的可定制性。

数据抓取还需要借助解析工具,将非结构化数据转换为更易读的格式,以便后续使用。遵循数据抓取的最佳实践与道德规范同样至关重要。诸如GDPR、CCPA 和 PIPEDA等在线隐私与数据保护法规,对在线数据采集设置了合理但严格的限制,数据抓取必须遵守这些规定。

数据抓取的使用场景非常广泛,其中最常见的包括市场调研、价格比较、潜在客户挖掘(例如为招聘采集简历)、新闻监测以及搜索引擎优化。近年来,数据抓取也被用于为大语言模型采集训练数据。

在许多情况下,数据抓取依赖代理服务器。住宅代理提供并轮换 IP 地址,以规避网站的反抓取算法。部分网站会限制数据抓取访问,就像 robots.txt 文件限制网络爬取访问一样。不过,合乎道德的数据抓取完全合法,包括Google、Amazon、Facebook 在内的众多公司都在使用这一方式。

网络爬取与数据抓取:关键区别

网络爬取与数据抓取最重要的区别在于数据采集的目的不同。网络爬取主要用于发现网站和建立索引,而数据抓取则用于提取数据,满足前文提到的各类使用场景。

二者采集的数据类型也大不相同。网络爬取下载网站的 HTML 文件,以从中找到 URL;而数据抓取则采集各类数据,从价格信息到文本、图片,无所不包。

网络爬取处理的数据体量也要大得多。全球有数十亿个网站,每个网站可能包含成百上千个 URL,这使得网络爬取在这一层面上成为一个非常复杂的过程。相比之下,数据抓取通常更为聚焦,往往只针对几十个网站甚至单个网站。

这两个过程所使用的工具自然也不同。网络爬取使用网络爬虫,也称蜘蛛程序;而数据抓取工具几乎总是被用来实现快速、高效的数据抓取。

最后,网络爬取面临的法律问题相对较少。网站所有者通常非常希望自己的网站能够被顺利访问,因此会允许蜘蛛自由抓取,仅在 robots.txt 文件中设置限制。而数据抓取可能采集到个人身份信息、受版权保护内容以及敏感数据,因此在开展此类操作前,务必先评估其合法性。

网络爬取与数据抓取何时会结合使用?

数据抓取与网络爬取经常被结合使用。在许多场景下,网络爬取是发现网站 URL 的第一步,同时也提供网站内部链接结构,使数据抓取工具知道如何在站内导航。由于网络爬取还会下载网站的 HTML 结构,这些数据可以被传递用于解析和进一步的数据分析。

相比之下,数据抓取并不太关注网站发现与导航,而是专注于数据的发现与提取。它会使用包括 CSS 选择器和 XPath 在内的各种选择器,尽可能全面地采集所需数据。

此外,数据抓取在面对大量使用 JavaScript 的网站时,往往需要借助专门的工具来提取数据。这类网站通常只有在页面完全加载后才会显示部分信息,因此数据抓取工具必须借助无头浏览器等额外工具。

挑战与最佳实践

网络爬取与数据抓取面临的挑战和最佳实践存在明显差异。如果您在实际工作中同时使用这两种技术,建议查阅我们的数据抓取合法性相关文章,获取更详尽的说明。

网络爬取往往面临技术层面的挑战。由于它需要爬取网站 URL 并下载 HTML 文档,这可能给服务器带来较大压力,导致网站响应变慢,严重时甚至会使服务器过载。需要注意的是,数据抓取同样会面临这些问题。

不过,无论您是想抓取 Amazon的数据,还是抓取防护较弱的小型网站,数据抓取都会面临大量法律问题。例如,抓取姓名、地址、电话号码、邮箱等个人身份信息是非常不可取的做法,可能引发法律纠纷。

蜘蛛程序无需面对、但数据抓取必须应对的另一个问题是反抓取防护。网站所有者通常乐于让网络爬虫为其网站建立索引,使其能够通过搜索引擎被搜索到。但另一方面,有些网站并不愿意共享数据,为了防范数据采集机器人,它们通常会部署 CAPTCHA 以及 Cloudflare 等服务作为防护手段。

结语

由此可见,网络爬取与数据抓取技术常常被结合使用,但二者之间的差异十分明显。简单回顾一下:数据抓取主要用于从公开来源提取数据,而网络爬取则用于发现网站和建立索引。

务必牢记其中存在的诸多法律挑战。只要不拖慢服务器速度,也不去访问或索引 robots.txt 文件中明确禁止的 URL,网络爬取本身通常不会引发问题。

另一方面,数据抓取必须始终保持在合乎道德与法律的范围内。例如,HiQ Labs 就曾因抓取 LinkedIn 的用户资料而与其陷入长期的法律纠纷。尽管在多数情况下,采集公开且不涉及个人身份信息的数据是合法的,但定期关注最新的在线数据隐私法规,仍能帮您省去不少潜在麻烦。

还不确定该用哪种编程语言来构建爬虫?我们的Golang 与 Python 对比一文为您详细拆解了二者在数据密集型项目中的利弊权衡。

如果您对这个话题感兴趣,或者经常使用数据抓取从网站提取数据,欢迎加入我们的Discord 服务器。您可以在这里结识志同道合的朋友、分享经验,我们也很乐意随时解答您的各种问题。

了解更多
-

相关文章