爬虫其实还是比较简单的,请求、响应、解析数据、存储数据。所有就有很多人问,分布式爬虫有没有必要。1.分布式爬虫的必要性分布式爬虫的必要性答案很简单:数据量少没必要,数据量大必须要数据量少没必要,数据量大必须要一个小站,数据量少,写一个脚本爬虫,或者单机爬虫项目,运行个把小时就可以结束,确实不需要上分布式。但是现在数据量大的站,或者你需要抓数据的站,那个数据必须有价值,而且数据量通常是大了才会有价值。你一个单机爬虫几天是抓不完的,就算你的电脑配置高,也不可能在个把月的时间内,抓取玩一个大站的所有数据。单机性能有限,带宽有限,内存有限,面对无法估量数据量的情况,分布式爬虫是你必须上的。2.分布式爬虫的优势分布式爬虫的优势分布式爬虫系统广泛应用于大型爬虫项目中,面对海量待抓取网页,只有采用分布式架构,才有可能在较短时间内完成一轮抓取工作,这也是分布式爬虫系统的意义所在。分布式爬虫系统广泛应用于大型爬虫项目中,面对海量待抓取网页,只有采用分布式架构,才有可能在较短时间内完成一轮抓取工作,这也是分布式爬虫系统的意义所在。分布式爬虫,是一个可以无限拓展性能和算力的爬虫项目框架,如下图。面对不可估量的数据量,采用可扩展的爬虫架构,数据量多的时候,接入更多的机器,启动更多的爬虫,可以更快的获取数据。爬虫的任务,统一从Redis中提取,处理好的数据,统一放到数据库中。随着爬虫的增加,数据库也需要做拓展,防止爬虫太多把数据库搞崩。3.大数据框架大数据框架大量的数据需要存储,也需要一个大数据框架。好在大数据处理框架很多,例如:HbaseHiveSpark这些都是专门用于存储海量数据的开源数据框架。除了数据框架,还有专门存放文件对象的,例如图片、文档文件等。通常云平台有提供专门用于存储的对象存储服务,例如阿里云的OSS。使用云平台产品的好处是快、方便、简单、有可靠运维,缺点就是贵。当然也可以自建对象存储服务,例如Fastdfs这种开源产品,搭建自己的分布式对象存储服务。1