本科毕业设计题目:基于网络爬虫的搜索引擎设计与实现系别:专业:计算机科学与技术班级:学号:姓名:同组人:指导教师:教师职称:协助指导教师:教师职称:摘要本文从搜索引擎的应用出发,探讨了网络蜘蛛在搜索引擎中的作用和地住,提出了网络蜘蛛的功能和设计要求。在对网络蜘蛛系统结构和工作原理所作分析的基础上,研究了页面爬取、解析等策略和算法,并使用Java实现了一个网络蜘蛛的程序,对其运行结果做了分析。关键字:爬虫、搜索引擎AbstractThepaper,discussingfromtheapplicationofthesearchengine,searchestheimportanceandfunctionofWebspiderinthesearchengine.andputsforwarditsdemandoffunctionanddesign.OnthebaseofanalyzingWebSpider’ssystemstrtuctureandworkingelements.thispaperalsoresearchesthemethodandstrategyofmultithreadingscheduler,WebpagecrawlingandHTMLparsing.Andthen.aprogramofwebpagecrawlingbasedonJavaisappliedandanalyzed.Keyword:spider,searchengine目录摘要................................................................................................................................2Abstract..........................................................................................................................3一、项目背景................................................................................................................51.1搜索引擎现状分析.......................................................................................51.2课题开发背景...............................................................................................51.3网络爬虫的工作原理...................................................................................8二、系统开发工具和平台............................................................................................82.1关于java语言.............................................................................................82.2Jbuilder介绍...........................................................................................102.3servlet的原理.........................................................................................11三、系统总体设计......................................................................................................133.1系统总体结构.............................................................................................133.2系统类图.....................................................................................................13四、系统详细设计......................................................................................................174.1搜索引擎界面设计.....................................................................................174.2servlet的实现.........................................................................................184.3网页的解析实现.........................................................................................204.3.1网页的分析....................................................................................204.3.2网页的处理队列............................................................................214.3.3搜索字符串的匹配.......................................................................224.3.4网页分析类的实现........................................................................224.4网络爬虫的实现.........................................................................................25五、系统测试..............................................................................................................33六、结论......................................................................................................................35致谢..............................................................................................................................35参考文献......................................................................................................................36一、项目背景1.1搜索引擎现状分析互联网被普及前,人们查阅资料首先想到的便是拥有大量书籍的图书馆,而在当今很多人都会选择一种更方便、快捷、全面、准确的方式——互联网.如果说互联网是一个知识宝库,那么搜索引擎就是打开知识宝库的一把钥匙.搜索引擎是随着WEB信息的迅速增加,从1995年开始逐渐发展起来的技术,用于帮助互联网用户查询信息的搜索工具.搜索引擎以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的目的.目前搜索引擎已经成为倍受网络用户关注的焦点,也成为计算机工业界和学术界争相研究、开发的对象.目前较流行的搜索引擎已有Google,Yahoo,Infoseek,baidu等.出于商业机密的考虑,目前各个搜索引擎使用的Crawler系统的技术内幕一般都不公开,现有的文献也仅限于概要性介绍.随着Web信息资源呈指数级增长及Web信息资源动态变化,传统的搜索引擎提供的信息检索服务已不能满足人们日益增长的对个性化服务的需要,它们正面临着巨大的挑战.以何种策略访问Web,提高搜索效率,成为近年来专业搜索引擎网络爬虫研究的主要问题之一。1.2课题开发背景目前虽然有很多种搜索引擎,但各种搜索引擎基本上由三个组成部分:(1)在互联网上采集信息的网页采集系统:网页采集系统主要使用一种工作在互联网上的采集信息的“网络蜘蛛”。“网络蜘蛛”实际上是一些基于web的程序,利用主页中的超文本链接遍历Web.利用能够从互联网上自动收集网页的“网络蜘蛛”程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集到网页数据库中。(2)对采集到的信息进行索引并建立索引库的索引处理系统:索引处理系统对收集回来的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后建立索引并存人到网页索引数据库中.索引数据库可以采用通用的大型数据库,如Oracle,Sybase等,也可以自己定义文件格式进行存放.为了保证索引数据库中的信息与Web内容的同步,索引数据库必须定时更新,更新频率决定了搜索结果的及时性.索引数据库的更新是通过启动“网络蜘蛛”对Web空间重新搜索来实现的.(3)完成用户提交查询请求的网页检索器:网页检索器一般是一个在Web服务器上运行的服务器程序,它首先接收用户提交的查询条件,根据查询条件对索引库进行查找并将查询到的结果返回给用户.当用户使用搜索引擎查找信息时,网页检索器接收用户提交的关键词,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页.有的搜索引擎系统综合相关信息和网页级别形成相关度数值,然后进行排序,相关度越高,排名越靠前.最后由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户.典型的搜索引擎系统如Google就是采用这种策略.信息的飞速增长,使搜索引擎成为人们查找信息的首选工具,Google、百度、中国搜索等大型搜索引擎一直是人们讨论的话题.搜索引擎技术的研究,国外比中国要早近十年,从最早的Archie,到后来的Excite,以及ahvista、overture、google等搜索引擎面世,搜索引擎发展至今,已经有十几年的历史,而国内开始研究搜索引擎是在上世纪末本世纪初.在许多领域,都是国外的产品和技术一统天下,特别是当某种技术在国外研究多年而国内才开始的情况下.例如操作系统、字处理软件、浏览器等等,但搜索引擎却是个例外.虽然在国外搜索引擎技术早就开始研究,但在国内还是陆续涌