240      
    Alex   
  
    每个人都有属于自己的一片森林,也许我们从来不曾去过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢!   

简单分布式爬虫

简单分布式爬虫

一、简单分布式爬虫结构

主从模式,主从模式是指由一台主机作为控制节点,负责管理所有运行网络爬虫的主机,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,

在这个过程中不必与其他爬虫通信,这种方式实现简单、利于管理。而控制节点则需要与所有爬虫进行通信,因此可有看到主从模式是有缺陷的,控制节点会成为整个系统的瓶颈,容易导致整个分布式网络爬虫系统性能下降。

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

二、控制节点

  控制节点(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代码如下:

 

 

2.2 数据存储器

 

posted @ 2018-08-24 15:51  Alex_c  阅读(265)  评论(0编辑  收藏  举报