自动抓取网页数据( 流行的Python爬虫框架Scrapy开发者ScrapinghubScrapinghub)
优采云 发布时间: 2022-04-13 06:11自动抓取网页数据(
流行的Python爬虫框架Scrapy开发者ScrapinghubScrapinghub)
爬取 1000 亿页后的经验教训:*敏*感*词*抓取产品数据的 5 个挑战
2018-07-21 11:49 来源:人人都是产品经理 编程/机器人/操作系统
编者按:互联网上有海量的数据资源,需要爬虫来抓取这些数据。鉴于网上有这么多免费开源的爬虫框架,很多人认为爬取一定很简单。但是,如果要定期准确地捕捉各种*敏*感*词*的网站数据,这是一项艰巨的挑战,包括网站格式经常变化,架构必须灵活可扩展才能响应规模变化同时保持性能,同时阻止 网站 反机器人并保持数据质量。Scrapinghub 是流行的 Python 爬虫框架 Scrapy 的开发者,分享他们在爬取 1000 亿网页后的经验。
爬虫技术现在似乎是一件容易的事,但这种看法却很混乱。开源库/框架、可视爬虫工具、数据提取工具很多,从网站抓取数据似乎很容易。但是,当您*敏*感*词*地抓取 网站 时,事情很快就会变得非常棘手。
自 2010 年以来,已爬取了超过 1000 亿个产品页面,我们将通过我们的系列 文章 分享经验教训,让您深入了解从电子商务商店*敏*感*词*提取数据的挑战,并与您分享一些应对这些挑战的最佳实践。
本文是 文章 系列文章的第一篇,我们将概述*敏*感*词*抓取产品数据的主要挑战,以及 Scrapinghub 从抓取 1000 亿个产品页面中吸取的教训。
Scrapinghub 成立于 2010 年,是领先的数据提取公司之一,也是当今最强大、最流行的网络爬虫框架 Scrapy 的作者。Scrapinghub 目前每月从世界上许多最大的电子商务公司抓取超过 80 亿个页面(其中 30 亿是产品页面)。
对于那些对*敏*感*词*网络抓取技术感兴趣,但无论是建立专门的网络抓取团队还是外包给专门的网络抓取公司的人,最好查看这个免费指南,企业网络抓取:扩展网络抓取技术指南
为什么规模爬行技术很重要?
与标准网络抓取应用程序不同,*敏*感*词*抓取电子商务产品数据具有独特的挑战,这使得网络抓取变得更加困难。
从本质上讲,这些挑战归结为两件事:速度和数据质量。
由于时间通常是限制因素,因此*敏*感*词*爬网需要您的爬虫在不影响数据质量的情况下高速爬网。这种对速度的要求使得爬取*敏*感*词*产品数据极具挑战性。
挑战 1:草率且不断变化的 网站 格式
这是显而易见的,也许不是最令人兴奋的挑战,但马虎且不断变化的 网站 格式是迄今为止您在*敏*感*词*提取数据时将面临的最大挑战。这不一定是因为任务的复杂性,而是因为您要投入的时间和资源。
如果您曾经花时间为电子商务商店开发爬虫,您就会知道草率的电子商务网站代码是一种流行病。这不仅仅是 HTML 完整性或偶尔的字符编码问题。多年来,我们遇到了各种各样的问题——滥用 HTTP 响应代码、损坏的 Java 代码或滥用 Ajax:
在停止产品时删除页面的商店会在 网站 升级后突然在 404 错误处理程序中返回 200 响应代码。
不正确的 JSON 转义会破坏页面的一些 Java 代码(例如,'b0rk'd'),因此您需要使用正则表达式来获取这部分数据。
一个滥用 Ajax 调用的商店,因此您只能通过呈现页面(这会使爬网速度慢得多)或模仿 API 调用(这需要更多的开发工作)来获取数据。
像这样草率的代码让编写爬虫变得很痛苦,但也让可视化爬取工具或自动提取变得不可行。
在*敏*感*词*抓取时,您不仅会浏览数百个带有草率代码的 网站s,而且您还将被迫处理不断发展的 网站s。一个好的经验法则是期望您的目标 网站 每 2 到 3 个月更改一次,这会使您的爬虫无法运行。
这可能看起来没什么大不了的,但是当你扩*敏*感*词*时,这些事件就会累积起来。比如 Scrapinghub 有一个比较大的电商项目,大概有 4000 条爬虫提取了大约 1000 条电商网站,这意味着它每天可能会遇到 20 到 30 次爬虫故障。
并且网站不同地区、语言、A/B 测试和包装/定价派生的差异也会产生各种可能导致爬虫失败的问题。
没有简单的解决方案
不幸的是,没有灵丹妙药可以完全解决这些问题。很多时候,这只是可以通过在项目扩展时为您的项目投入更多资源来解决的问题。再举一个例子,该项目有18名全职爬虫工程师和3名全职QA工程师,以确保客户始终获得可靠的数据流。
但是,凭借经验,您的团队将学习如何开发更强大的爬虫,以检测和处理目标 网站 格式的异常。