写在前面
最近该系列的爬虫更新比较慢了,原因是实在写不动了,70多篇博客,每一篇都是一个案例,在写好多都不是篇博客可以容纳的了,而且爬虫的技术在70多篇中都有所涉及了,但是flag既然历下了,那么就必须要把它完成,接下来进入一些稍微稍微麻烦一点的内容,第一个咱就写分布式爬虫,这个其实核心就是提高爬取效率的,属于套路,而且是常见的讨论,走起。
为什么要用分布式
好问题,其实大多数爬虫在编写的时候如果遇到效率问题,用多进程,协程就可以满足需求了,但是当一个爬虫类的项目上升到非常大的级别或者达到商用的目的,你需要同时抓取成千上万个网站,处理上亿的请求(有点夸张了),单个的爬虫非常难实现这样的需求,就需要大量的服务器进行同时分布抓取,所以你看到大多数分布式爬虫课程到最后都是在模拟一个搜索引擎,因为搜索引擎就是一个超级爬虫。
接下来的几篇博客,可能重点都会落在scrapy-redis
这个框架或者叫做基于redis的一个组件上面,因为通过他,我们可以快速、简单的实现分布式爬虫程序
总结一句话,啥叫分布式爬虫,可以给一个不精准,但是好理解的定义
把爬虫部署在多台电脑主机上,并且互相之间还有通讯的一种爬虫技术
scrapy-redis
对于分布式爬虫,scrapy-redis 目前是应用最多的,并且是互联网相关教程说明最多的,原因也不用太深究,综合各种因素来看该框架是最简单的构建分布式爬虫的方式,而且资料全,不选他选谁?
后续我尽力把常见的分布式爬虫框架都进行依次的说明,例如scrapyd
、celery
这些,了解的越多,对待一个问题的解决方案也会变的越多。
回顾scrapy的架构
scrapy默认是单机爬虫,有过了解的朋友(当然,你如果持续看到我今天的博客,应该在之前已经对scrapy有过认识了,当然不能说看过几篇博客就能