简单分布式爬虫——第一弹:了解分布式爬虫结构

学习爬虫有段时间了,期间爬过微博、糗事百科、网易云音乐、豆瓣等大大小小的网站,对爬虫也算窥其门径。不论所爬网站是何种类,爬虫的套路无非几步:目标网站分析、反爬策略研究、设计爬虫、代码实现、优化。不过一直以来,都是一个.py文件撸到底,并没有考虑性能效率什么的(对效率性能有要求直接上scrapy、pyspider),然而作为一个合格的spider,要不会分布式爬虫那真是笑死人了,所以本博客特开一系列博文学习分布式爬虫。

什么是分布式爬虫?日常用过搜索引擎Google、百度等吧,其实这些搜索引擎都是爬虫,负责从世界各地的网站上爬取内容,当你搜索关键词时就把相关的内容展示给你,只不过他们那都是炒鸡大的爬虫,爬的内容量也超乎想象,然额,这么大的爬虫工作交给一台服务器去完成,即使服务器性能再好怕是也忙不过来,那怎么办?当然是上分布式啊,一台服务器不行,我来100台,什么?100台也不够?说吧,需要多少台!所以当有了一大堆服务器的时候,你就可以用他们协同来完成爬取工作了,世界上网页再多也架不住你成千上万台服务器去爬啊,那么,这里提到的"协同"其实就是用到了分布式的概念:我这么多分布在各地的服务器都是为了完成爬虫工作,彼此得通力协作才行啊,于是就有了分布式爬虫。

分布式爬虫形色多样,无论是我们这次准备徒手撸的简单爬虫还是成熟的爬虫框架scrapy、pyspider亦或是Google百度之类的公司专用爬虫,其基本结构都是差不多的。我们就以简单的主从分布式爬虫讲起。所谓主从模式,就是由一台服务器充当master,若干台服务器充当slave,master负责管理所有连接上来的slave,包括管理slave连接、任务调度与分发、结果回收并汇总等;每个slave只需要从master那里领取任务并独自完成任务最后上传结果即可,期间不需要与其他slave进行交流。这种方式简单易于管理,但是很明显master需要与所有slave进行交流,那么master的性能就成了制约整个系统的瓶颈,特别是当连接上的slave数量庞大的时候,很容易导致整个爬虫系统性能下降。不过这不影响我们的学习,下面对主从分布式爬虫结构进行讲解。

先上一张图:
主从分布式爬虫结构图

这是经典的主从分布式爬虫结构图,图中的控制节点ControlNode就是上面提到的master,爬虫节点SpiderNode就是上面提到的slave。下面这张图展示了爬虫节点slave的执行任务示意图

控制节点执行流程图

这两张图很明了地介绍了整个爬虫框架,我们在这里梳理一下:
1、整个分布式爬虫系统由两部分组成:master控制节点和slave爬虫节点
2、master控制节点负责:slave节点任务调度、url管理、结果处理
3、slave爬虫节点负责:本节点爬虫调度、HTML下载管理、HTML内容解析管理
4、系统工作流程:master将任务(未爬取的url)分发下去,slave通过master的URL管理器领取任务(url)并独自完成对应任务(url)的HTML内容下载、内容解析,解析出来的内容包含目标数据和新的url,这个工作完成后slave将结果(目标数据+新url)提交给master的数据提取进程(属于master的结果处理),该进程完成两个任务:提取出新的url交于url管理器、提取目标数据交于数据存储进程,master的url管理进程收到url后进行验证(是否已爬取过)并处理(未爬取的添加进待爬url集合,爬过的添加进已爬url集合),然后slave循环从url管理器获取任务、执行任务、提交结果......

好了,以上就是简单分布式爬虫整体结构,是不是很简单。
下一讲:打造属于我们自己的爬虫master

参考资料:《Python爬虫开发与项目实战》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容