信息科学
Ⅵ删裂
●缀
基于:JAVA的
网络蜘蛛的
设计与实现
郑志材张晶(肇庆工商职业技术
计算机应用技术系广东肇庆526020)
【摘要】网络蜘蛛是现代
搜索引擎获取网络信息的重要手段,直接影响到搜索引擎的查全率,SUN公司发布的JAVA在其网络
程序设计方面有其突出的特色t设计~个简单的网络蜘蛛并通过JAVA语言将其实现。【关键词】JAVA嘲络蜘蛛搜索引擎
中图分类号:TP3文献标识码:A文章编号:1671--7597(2009)0720046--02
在当前信息科技发达的今天,对于大部分人来讲,获取信息的主要工具就是搜索引擎。但是对于所有的搜索引擎来说,本文介绍的是将搜索引
个URL是否已经被下载过,如果被下载过,则忽略这个uIlL)。如果下载队列中没有URL,并且所有的下载线程都处于休眠状态,说明已经下载完了由入口网址所引出的所有网络资源。这时网络蜘蛛会提示F载完成,并停止下载。3.分析这些下载到本地的未分析过的网络资源(一般为html代码),并获得其中的URL(如标签中href属性的值)。内存中的Queue对象中。因此,我们需要将它保存在容最更大的存储空间中.这就是硬盘。4.将第3步获得的URL加入到F载队列中。并重新执行第2步。:、在页面中囊行算法的设计页面间爬行算法的设计,其实就是网络蜘蛛遍历链接先后的爬行策略。一般有广度优先策略(BFS)和深度优先策略(DFS)。广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此嘲页中链接的所有嘲页。这是最
常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指嘲络蜘蛛会从起始页开始.~个链接一个链接跟踪F去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。两种策略的区别,图2的说明会更加明确:
擎用f收集网页的重要工具——网络蜘蛛(WebSpider)。网络蜘蛛的主
要作用是搜集互联网的网页,我们也可以用他来定期收集某个网站的内容,用来判断网站的发展。从网络蜘蛛的J=作原理来看,“网络蜘蛛”是一个比较形象的名字,他是在互联网内,通过网页链接,从一个网页爬到另一个网页进行网页搜集的工具。他
工作通常是这样进行的:对于一个网页,通过对这个网页的内容的分析。分析这个网页里面的链接。根据链接进入另一个网页.再进行上面的操作,直到把这个网站的网页全部下载到本地计算机。JAVA语言是SUN公司的开发平台,是一种优秀的网络编程语言,
Java语言在此非常适合构建一个“蜘妹”程序,其内建了对HTTP协议的支持,通过它可以传输大部分的网页信息;其还内建了一个
HTML解析器,正是这两个原因使Java语言成为本文构建“蜘蛛”程序的首选。下面介绍下如何设计一个简单的网络蜘蛛并用JAVA实现。一、罔络■蛛的基本实现思想和实现步●
图2遍历算法图示图l网络蜘蛛的工作流程网络蜘蛛的主要作用是从Internet上不停地F载网络资源。它的基本实现思想就是通过一个或多个入u网址来获取更多的URL.然后通过对这些URL所指向的网络资源下载并分析后,再获得这螳嘲络资源中包含的URL,以此类推,直到再没有可下的URL为止.下面是用程序实现网络蜘蛛的具体步骤:1.指定一个(或多个)入口网址,并将这个网址加入到下载队列中(这时下载队列中只有一个或多个入口网址).2.负责下载网络资源的线程从下载队列中取得一个或多个URL,并将这些URL所指向的网络资源下载到本地(在下载之前,一般应该判断一下这一般因为标准的网站构建尽量是贴近扁平式的,如果选用深度遍历算法每爬一层就要访问队列一次,数据访问次数多于广度遍历算法,在时间复杂度尚处于劣势。并且网络蜘蛛也采用多线程方式实现,所以变了算法选用的是广度优先遍历更为合理。三、鲁模块对于网络蜘蛛来说,实现网络蜘蛛的最重要的三个模块是HTML的解析、网页下载以及嘲页的遍历。(--)HTW-的解析对网络蜘蛛来说,网页信息中最有价值的信息是网页的连接和网页的内容。网页的连接关系到网络蜘蛛下一步的爬行的页面,网贞内容则是网
匝习
万方数据
鬟誓
VALLE工
℃避汉。
信患科学