zoukankan      html  css  js  c++  java
  • 简单分布式爬虫

    简单分布式爬虫

    一、简单分布式爬虫结构

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

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

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

    二、控制节点

      控制节点(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 数据存储器

  • 相关阅读:
    python setup.py install 失败
    Python xlsx 读取
    Java ArrayList Sort
    java console ( mac osx ) 命令行编码
    Lucene Query Term Weighting
    Fast Intro To Java Programming (2)
    随感 20150512
    循环数组中找查找某个数值
    数字内组合得到下一个比该数大的数
    android activity空指针异常解决问题解决
  • 原文地址:https://www.cnblogs.com/zcfx/p/9530337.html
Copyright © 2011-2022 走看看