分布式网络爬虫关键技术分析与实现系列
一、背景:
近十几年以来,互联网技术迅速发展,使互联网逐渐成为人们不可或缺的巨大信息源。准确而快速的从网上找到信息己成为人们迫切的需求。搜索引擎的出现和发展在一定程度上满足人们需要的同时,也面临着更多的挑战。网络搜索技术主要包括信息采集和信息处理两方面。网络爬虫属于信息采集部分,它是一个基于web程序,它从一个初始的网页集出发,遍历Internet,自动采集网络信息。作为搜索引擎的一个关键组成部分,网络爬虫的效率将直接影响到搜索引擎性能。随着WWW信息的爆炸性增长,集中式网络爬虫信息采集的速度和规模已难以满足实际应用的需要,分布式网络爬虫较集中式网络爬虫往往具有明显的速度与规模优势,是今后大规模网络爬虫发展的一个重要方向。
二、研究所属范围:
分布式网络爬虫包含多个爬虫,每个爬虫需要完成的任务和单个的爬行器类似,它们从互联网上下载网页,并把网页保存在本地的磁盘,从中抽取URL并沿着这些URL的指向继续爬行。由于并行爬行器需要分割下载任务,可能爬虫会将自己抽取的URL发送给其他爬虫。这些爬虫可能分布在同一个局域网之中,或者分散在不同的地理位置。
根据爬虫的分散程度不同,可以把分布式爬行器分成以下两大类:
1、基于局域网分布式网络爬虫:这种分布式爬行器的所有爬虫在同一个局域网里运行,通过高速的网络连接相互通信。这些爬虫通过同一个网络去访问外部互联网,下载网页,所有的网络负载都集中在他们所在的那个局域网的出口上。由于局域网的带宽较高,爬虫之间的通信的效率能够得到保证;但是网络出口的总带宽上限是固定的,爬虫的数量会受到局域网出口带宽的限制。
2、基于广域网分布式网络爬虫:当并行爬行器的爬虫分别运行在不同地理位置(或网络位置),我们称这种并行爬行器为分布式爬行器。例如,分布式爬行器的爬虫可能位于中国,日本,和美国,分别负责下载这三地的网页;或者位于CHINANET,CERNET,CEINET,分别负责下载这三个网络的中的网页。分布式爬行器的优势在于可以子在一定程度上分散网络流量,减小网络出口的负载。如果爬虫分布在不同的地理位置(或网络位置),需要间隔多长时间进行一次相互通信就成为了一个值得考虑的问题。爬虫之间的通讯带宽可能是有限的,通常需要通过互联网进行通信。
在实际应用中,基于局域网分布式网络爬虫应用的更广一些,而基于广域网的爬虫由于实现复杂,设计和实现成本过高,一般只有实力雄厚和采集任务较重的大公司才会使用这种爬虫。这里研究的是前者。
三、计划写的文章:
1、网络爬虫相关知识介绍
2、分布式网络爬虫体系结构设计
3、关键技术之单机爬虫的实现(1)---从最简单的爬虫说起
4、关键技术之单机爬虫的实现(2)---礼貌是最基本的品质
5、关键技术之单机爬虫的实现(3)---爬虫搜索策略
6、关键技术之单机爬虫的实现(4)---漫游空间的划分
7、关键技术之单机爬虫的实现(5)---主要技术问题
8、关键技术之单机爬虫的实现(6)---爬虫的基本流程
9、关键技术之单机爬虫的实现(7)---必要的参数分析
10、关键技术之单机爬虫的实现(8)---多线程的引入
11、关键技术之单机爬虫的实现(9)---下载网页的三种方法对比
12、关键技术之单机爬虫的实现(10)---如何分析网页中的链接
13、关键技术之单机爬虫的实现(11)---去重的几种思路
14、关键技术之单机爬虫的实现(12)---域名解析模块
15、关键技术之单机爬虫的实现(13)---单机爬虫也需要调度任务
16、关键技术之单机爬虫的实现(14)---你的爬虫能持久爬行嘛
17、关键技术之单机爬虫的实现(15)---网页更新
18、关键技术之任务调度设计与验证---中庸算法的引入
19、关键技术之URL去重设计与验证---改进的Bloom Filter算法
20、关键技术之优雅爬行设计与验证---爬行礼貌必须的
21、关键技术之节点通信设计与验证---消息机制应用
22、原型系统分析与实现---自己实现的一个原型仅供学习与研究
四、简单介绍:
分布式网络爬虫做为搜索引擎前端,想做好它涉及的东西很多,实现它也是十分有挑战性。加上水平有限,希望大家能提出好的建议与帮助。谢谢大家了。