简单分布式爬虫

简单分布式爬虫

1、简单分布式爬虫结构

主从模式,主从模式是指由一台主机做为控制节点,负责管理全部运行网络爬虫的主机,爬虫只须要从控制节点那里接收任务,并把新生成任务提交给控制节点就能够了,算法

在这个过程当中没必要与其余爬虫通讯,这种方式实现简单、利于管理。而控制节点则须要与全部爬虫进行通讯,所以可有看到主从模式是有缺陷的,控制节点会成为整个系统的瓶颈,容易致使整个分布式网络爬虫系统性能降低。网络

  这次使用三台主机进行分布式爬取,一台主机做为控制节点,另外两台主机做为爬虫节点。爬虫结构。分布式

2、控制节点

  控制节点(ControINode)主要分为URL管理器、数据存储器和控制调度器。控制调度器经过三个进程来协调URL管理器和数据存储器的工做:一个是URL管理进程,负责URL管理和将URL传递给爬虫节点;一个是数据提取进程,负责读取爬虫节点返回的数据性能

2.1 URL管理器

以前的一种方式是采用的set内存去重的方式,若是直接存储大量的url连接,尤为是URL连接很长时候,很容易形成内存溢出,因此咱们将爬取过的URL进行md5处理。字符串通过通过MD5处理后的信息摘要长度为128位,将生成的MD5摘要存储到set后,能够减小好几倍的内存消耗,不过Python中的MD5算法生成的是256位,取中间的128位便可,咱们同时添加save_progress和load_progress方法进行序列化操做,将未爬取URL集合和已爬取的URL集合序列化到本地,保存当前的进度,以便下次付汇状态。URL管理器URL代码以下:url

 

 

2.2 数据存储器

相关文章
相关标签/搜索