蜜蜂群并行网页抓取系统.docx
- 文档编号:24616365
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:6
- 大小:20.15KB
蜜蜂群并行网页抓取系统.docx
《蜜蜂群并行网页抓取系统.docx》由会员分享,可在线阅读,更多相关《蜜蜂群并行网页抓取系统.docx(6页珍藏版)》请在冰豆网上搜索。
蜜蜂群并行网页抓取系统
蜜蜂群并行网页抓取系统
摘要:
介绍了网页抓取的工作原理和蜜蜂群的基本活动,在充分研究了蜂蜜群的分工后,结合网页抓取设计的时候应该考虑的因素和策略,提出一个基于蜜蜂群的并行网页抓取系统的设计方案。
关键词:
蜜蜂群;并行系统;网页抓取
1基本概念
1.1网页抓取基本工作原理
网络爬虫即WebSpider,是通过网页的链接地址来寻找网页的,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,一直循环下去,直到把这个网站所有的网页都抓取完为止。
网页抓取是整个搜索引擎工作的开始,必须要拥有足够多的网页,才能获取足够的图片,并提供比较满意的查询结果。
搜索引擎中的Spider负责网页抓取的工作。
简单的Spider的网页抓取路径是按照超链接的拓扑顺序进行的。
首先Spider拥有一个初始的URL列表,放到队列中,根据URL获取到对应的网页,分析网页中的
同时根据需要也可以获取
重复地进行这个过程,直到抓取到指定数量的网页为止。
1.2蜜蜂群的活动
蜜蜂(学名:
Apismellifera)是一种会飞行的群居昆虫。
蜜蜂群体中有蜂王、工蜂和雄蜂(Drone)3种类型的蜜蜂,群体中有一只蜂后(有些例外情形有两只蜂后),1万到15万工蜂,500到1500只雄蜂。
虽然它们都生活在一个巢穴中,但是它们的分工明确,密切协作,是一个非常不错的团队。
蜂王的任务是产卵,分泌的蜂王物质激素可以抑制工蜂的卵巢发育,并且影响蜂巢内的工蜂的行为。
可见蜂王是整个团队的领导者(Leader),负责任务的分配和调度。
雄蜂的任务是和处女王交配后繁殖后代,雄蜂不参加酿造和采集生产,个体比工蜂大些。
工蜂的任务主要是采集食物、哺育幼虫、泌蜡造脾、泌浆清巢、保巢攻敌等工作。
2网页抓取技术需考虑的因素
2.1负载均衡
在网页抓取的过程中,一段时间内如果抓取任务过多地分配给一个或这个固定的几个主机,而其它主机在这段时间内总是空闲的话,势必会造成每个主机负载不平衡的现象,这样会影响这个抓取系统的效率和准确性。
为了实现抓取效率的最大化,需要设计一个合理高效的算法来处理负载均衡问题。
比较常用的方式是每个主机处理一定范围的IP网页,可以设计一个Hash函数来分配任务。
2.2不重复抓取同一个网页
海量的网页中,有可能出现这样一个现象:
很多个网页直接链接到一个一段时间内比较热门和流行的网页,即该网页的主题很受网民的关注,比如“360对战腾讯”话题,这样一个主题网页很有可能被其它的网页引用。
所以,在抓取的过程中有可能出现重复抓取同一个网页,即去重问题。
由于抓取系统很费系统资源,因此抓取系统必须解决去重问题。
通常的算法有基于B-树和基于哈希算法以及基于布隆过滤器的去重算法。
2.3网页更新问题
网页数据库中存储的网页和互联网中的网页总是相互独立的,互联网中的网页随时间推移会更新内容,这样会使网页数据库中网页过时。
过时的网页库新鲜度很低,也可以说是老化了的网页库。
因此系统要随时检查网页库的新鲜度,保持高新鲜度的网页是很多搜索引擎要解决的问题之一。
目前最流行的更新模式有两种,一种是批量更新,另一种是增量更新。
不同的更新模式产生的网页库新鲜度是不相同的,2000年JunghooCho等人提出了网页新鲜度的时间变化图,如图1所示。
图1网页新鲜度随时间变化关系
2.4海量URL管理
为了提高网页抓取的速度,搜索引擎通常会存储数量巨大的URL,有效的管理这些URL可以提高抓取系统的性能。
通常的做法是将这些URL放在数据库或文件系统中,例如Google就把海量的URL放在Google自己设计的文件系统中。
在抓取的过程中,需要将这些URL调入到内存中,方便索引,所以在整个URL的管理中,最为重要的是URL的索引。
常见的索引技术有BTree索引和Hash索引,文献也提出一个基于NC-Trie的快速URL索引技术。
2.5抓取用户感兴趣的网页
既然不可能抓取到所有的网页,为了提高抓取的质量,通常是优先抓取“重要的”网页。
“重要的”网页有几种度量标准:
①可以通过分析超链结构和概率模型来猜测未抓取网页的内容,从而决定哪一类内容的信息需要优先抓取;②可以通过链接分析来对未抓取网页的重要性进行度量,优先抓取重要性高的网页;③分析网页的位置,比如域名、目录深度等,可以优先抓取“.com”域名下网页,并优先抓取目录深度浅的网页。
3网页抓取策略
在抓取网页的过程中,搜索引擎通常会建立一个网站地图,遍历这个网站地图会很快抓取整个网页。
一个网站地图就是一个有向图,每个页面是图的节点,页面中的超链接是图的有向边。
这样,可以用有向图的遍历算法来遍历整个网站地图。
3.1深度优先抓取策略
在早期的搜索引擎中深度优先搜索策略普遍使用,该策略从网站地图的起始页开始,抓取页面中没有抓取的节点vi,并标记为已抓取;然后依次从节点vi出发搜索vi的每个邻接点wi。
若wi没有被抓取,则以wi为新的出发点进行深度优先抓取,直到网站地图中所有和源点vi均有路径相通的节点都被抓取完毕为止。
例如在图2的简化网站地图中,假设从A点出发则抓取路径如表1所示。
表1抓取路径路径编号路径点1AB2ACEG3ACFG4AD图2简化的网站地图
3.2广度优先抓取策略
广度优先是指网络爬虫会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。
这也是搜索引擎最常用的方式,因为这个方法可以让网络爬虫程序并行处理,提高其抓取速度;同时这也保证了对浅层的首先处理。
当遇到一个无穷尽的深层分支时,不会导致陷进互联网中的深层文档中出现出不来的情况发生。
广度优先抓取策略还有一个优点,即它能在两个HTML文件之间找到最短路径。
广度优先抓取策略通常是实现网页爬虫程序的最佳策略,因为它容易实现,而且具备大多数期望的功能。
但是如果要遍历一个指定的站点或者深层嵌套HTML文件集,用广度优先抓取策略则需要花费比较长的时间才能到达深层的HTML文件。
综合考虑以上几种策略,目前通常采用以广度优先抓取策略为主、线性抓取策略(根据IP地址递增抓取所有文档,与链接无关)为辅的抓取策略。
对于某些不被引用的或很少被引用的HTML文件,广度优先抓取策略可能会遗漏这些孤立的信息源,可以用线性抓取策略作为它的补充。
4系统架构
系统采用基于数据抽取器的分布式系统结构,由一个蜂王调度中心和分布式的网络蜜蜂服务器以及立体的蜂巢数据中心组成。
整个系统相互协同工作,整体架构见图3。
图3系统框架
4.1蜂王调度中心
系统初始化时,调度中心将种子页面URL提供给管理中心,下载相应页面,然后负责解析出下载页面中的URL,将未访问过的URL按照抓取策略排序,并以URL队列文件的形式提供给管理中心安排下载。
下载的页面则由存储管理中心压缩存储在数据立方体群中。
由于每个页面平均包含超过8个超链接,随着下载页面数量的增加,URL队列的长度会迅速增加并超过主存的容量,当前页面解析的URL可能在几个小时或几天之后才会访问,因此,URL被保存于URL队列文件中,在需要时才被管理中心按照抓取控制器提供的文件指针读入内存。
4.2管理中心
管理中心是抓取系统的核心构件,网络蜜蜂和DNS解析器在系统初始化时向管理中心注册,由管理中心统一分配任务。
管理中心从蜂王调度中心接收抓取任务请求,这些请求由请求优先级和指向URL文件的指针构成,URL文件指针指向包含待下载URL队列的文件地址,这样,管理中心就可以通过文件指针读取存储于不同系统之上的URL列表文件。
管理中心按请求优先级将请求放入队列,读取相应文件中的URL信息以提供下载。
为了使系统存储在内存中的数据量尽量小,这些操作被推迟到必要时才去处理。
管理中心尽量按照蜂王调度中心的排序结果安排网络蜜蜂对URL进行抓取,同时在必要时按照重访间隔时间调整某些页面的抓取次序。
在管理中心读取URL列表文件后,需要通过查询DNS解析器获得URL对应主机的IP地址,若系统中不存在此主机的Robots.txt文件,则首先从该主机的根目录下载该文件,并将该文件解析并保存。
按照访问控制协议,管理中心从队列中移除禁止访问的URL,并为允许访问的URL按照重访间隔时间规定指派网络蜜蜂进行下载。
管理中心还负责监视网络蜜蜂的下载速率和DNS解析器的工作负荷,控制整个系统的下载速度,平衡各网络蜜蜂和DNS解析器的工作负荷。
管理中心周期性的保存工作状态,在系统遭遇崩溃之后可以保证较少的页面丢失。
4.3网络蜜蜂和DNS解析器
网络蜜蜂充当一个下载器的角色。
网络蜜蜂负责对待采集的URL并行下载,每个网络蜜蜂同时开启数百个下载线程对不同的URL进行下载。
下载的页面根据抓取页面分析器的分析保存在页面数据库中,这些页面数据库可以通过文件系统被抓取控制器访问。
被下载页面的相关信息被记录下来,包括下载失败时返回的错误代码。
已访问过的URL将被存入已访问URL队列并与相关的下载文件关联。
管理中心则可以通过调整网络蜜蜂的线程数量改变网络蜜蜂的负载。
DNS解析器完成对URL域名的解析,获得对应主机的IP地址。
在数据量很大的情况下,域名解析会占用较多的系统资源,造成系统瓶颈,因此需要采用DNS缓存,将部分域名保存在系统中,以减少访问域名解析服务器的次数。
4.4页面分析器和网页数据库
页面分析器先将网络蜜蜂下载的网页内容采用DOM或SAX技术解析之后,根据页面的元素提取出页面的主题、关键词、URL、图片信息、文字信息等元素。
解析完毕之后,程序将进入网页分析和信息抽取过程,这包含标题、正文等信息的抽取、生成摘要、以及对网页的分类:
①抽取网页中的标题、正文等有用信息;②生成摘要,主要用来对网页中的正文信息进行标识;③根据网页中相关文本以及结构等特征信息,对网页进行分类处理,识别出内容页、列表页、错误页、登录页等等。
最后程序根据上面页面分析之后提取出来的信息,设计一个数据库,将这些信息存储在数据库中。
5结束语
网页抓取系统是为了解决网络中海量数据的收集问题,收集的质量主要取决于数据抓取的准确性、覆盖率等。
在现代的搜索引擎中,最关心的还是抓取系统能在整个互联网中网页的抓取数量,如果数量越大,那么抓取之后得到的数据越准确、系统的速度也就越来越快。
一个好的搜索引擎的质量很大程度依赖于网页抓取系统,所以一个快速的高效运行的抓取系统的设计至关重要。
本文在研究蜜蜂群的活动后,设计了一个并行结构的抓取系统,但还没有实现这样的一个系统,因此后期的研究中,笔者将研究怎样实现这样的系统。
参考文献:
[1]胡炜.分布式WebCrawler系统研究与实现[D].南昌:
江西理工大学,2010.
[2]CHOJ,GARCIA-MOLINAH.TheEvolutionoftheWebandImplicationsforanIncrementalCrawler.In:
AmrElAbbadi,MichaelL.Brodie(Eds.)[A].ProceedingsoftheTwenty-sixthInternational.ConferenceonVeryLargeDatabases[C].Cairo,Egypt.2000.55-64.
[3]http:
//www.codechina.org/doc/google/gfs-paper/.
[4]BWYDROWSKIM.ZUKERMAN.GREEN:
anactivequeuemanagementalgorithmforaselfmanagedinternet[A].IEEEInternationalConference[C],2002.vol.4:
2368-2372.
[5]丁兴旺.面向网络爬虫的海量URL数据管理技术研究[D].哈尔滨:
哈尔滨工业大学,2008.
[6]NAJORKM,WIENERJL.Breadth-Firstcrawlingyieldshigh-qualitypages[A].In:
Proc.ofthe10th.Int’lWorldWideWebConf.North-Holland[C].ElsevierSciencePublishers.2001.114-118.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蜜蜂 并行 网页 抓取 系统