专栏名称: AI前线
微信号:AI前线,ID:ai-front 运营
目录
相关文章推荐
爱可可-爱生活  ·  【[13星]OpenThinkIMG:让AI ... ·  15 小时前  
爱可可-爱生活  ·  【[170星]cloudflare/ai-u ... ·  15 小时前  
机器学习研究组订阅  ·  Cursor ... ·  18 小时前  
机器学习研究组订阅  ·  陶哲轩再爆:一个月三破18年未解难题!Alp ... ·  昨天  
新机器视觉  ·  图像去噪的原理及实现 ·  2 天前  
51好读  ›  专栏  ›  AI前线

我们从爬取1000亿个网页中学到了什么?

AI前线  · 掘金  · AI  · 2018-07-23 08:27

正文

请到「今天看啥」查看全文


阅读 0

我们从爬取1000亿个网页中学到了什么?

策划编辑 | Natalie
编译 | 无明
编辑 | Vincent
AI 前线导读: 现如今,爬取网页看起来似乎是一件很简单的事。有很多开源框架或库、可视化爬取工具和数据提取工具,利用这些工具可以很容易地从网站上爬取数据。但是,当你想大规模爬取网站时,事情就变得棘手起来。其中包括应对不断变化的网站格式、构建可伸缩的爬虫基础框架并保持吞吐量,与此同时还要挫败网站反机器人的手段以及维护数据质量。在这篇文章中,流行 Python 爬虫框架 Scrapy 开发者 Scrapinghub 分享了大规模爬取产品数据时将面临的主要挑战,以及他们爬取 1000 亿个网页后的经验之谈。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

Scrapinghub 成立于 2010 年,是一家领先的数据公司,当今最强大、最受欢迎的网络爬取框架 Scrapy 就是由它开发的。目前,Scrapinghub 每个月为全球很多大型的电子商务公司爬取 80 亿个网页(其中有 30 亿个是产品页面)。

在进行大规模爬取时哪些东西是最重要的?

与标准的爬虫应用程序不同,大规模爬取电子商务产品数据需要面临一系列独特的挑战,这些挑战让爬取网页变得更加困难。

这些挑战可以被归结为两类:速度和数据质量。

因为时间通常是一个限制性的约束条件,所以在进行大规模爬取时要求爬虫以非常快的速度进行爬取,同时又不影响数据质量。这种对速度的极限要求使得爬取大量产品数据变得极具挑战性。

挑战之一:凌乱的代码和不断变化的网页格式

很显然,凌乱的代码和不断变化的网页格式是在大规模爬取数据时将面临的最大挑战。不一定是因为任务的复杂性,而是你要在这上面所花费的时间和资源。

如果你做过网店的爬虫,就会知道,在网店的网页中,凌乱的代码泛滥成灾。除了 HTML 格式问题或偶尔出现的字符编码问题之外,还有其他很多问题。多年来,我们遇到了各种各样的问题——滥用 HTTP 响应码、糟糕的 JavaScripts 或滥用 Ajax:

  • 网店在停止销售某些产品时会删除相应的产品页面,但在网站升级后,404 错误处理程序却返回了 200 响应码。

  • 错误地转义了 JSON 数据,导致某些页面上的 JavaScript 代码无法正常运行(例如’b0rk'd'),你不得不使用正则表达式来爬取数据。







请到「今天看啥」查看全文