From d986a02e1bc84cfb1f6080e48e8c9242a1813e21 Mon Sep 17 00:00:00 2001 From: Xargin Date: Wed, 22 Aug 2018 12:51:25 +0800 Subject: [PATCH] update scrawler --- ch6-cloud/ch6-09-scrawler.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ch6-cloud/ch6-09-scrawler.md b/ch6-cloud/ch6-09-scrawler.md index 05c9eb2..433f106 100644 --- a/ch6-cloud/ch6-09-scrawler.md +++ b/ch6-cloud/ch6-09-scrawler.md @@ -4,11 +4,16 @@ 除去情怀需求,互联网上有大量珍贵的开放资料,近年来深度学习如雨后春笋一般火热起来,但机器学习很多时候并不是苦于我的模型是否建立得合适,我的参数是否调整得正确,而是苦于最初的起步阶段:没有数据。 -所以这些作为收集数据的前置工作,有能力去写一个简单的或者复杂的爬虫,对于我们来说依然非常重要。 +作为收集数据的前置工作,有能力去写一个简单的或者复杂的爬虫,对于我们来说依然非常重要。 ## 基于 colly 的单机爬虫 ## 分布式爬虫 -想像一下,你们的信息分析系统运行非常之快。获取信息的速度成为了瓶颈,虽然可以用上 Go 语言所有优秀的并发特性,将单机的 CPU 和网络带宽都用满,但对于价格战期间的电商们来说,还是希望能够在对手价格变动后第一时间获取到其最新价格,再靠机器自动调整本家的商品价格。 +想像一下,你们的信息分析系统运行非常之快。获取信息的速度成为了瓶颈,虽然可以用上 Go 语言所有优秀的并发特性,将单机的 CPU 和网络带宽都用满,但还是希望能够加快爬虫的爬取速度。在很多场景下,速度是有意义的: +对于价格战期间的电商们来说,还是希望能够在对手价格变动后第一时间获取到其最新价格,再靠机器自动调整本家的商品价格。 + +对于类似头条之类的 feed 流业务,信息的时效性也非常重要。如果我们慢吞吞地爬到的新闻是昨天的新闻,那对于用户来说就没有任何意义。 + +所以我们需要分布式爬虫。从本质上来讲,分布式爬虫是一套任务分发和执行系统。而常见的任务分发,因为上下游存在速度不匹配问题,必然要借助消息队列。