网络爬虫论文.doc
《网络爬虫论文.doc》由会员分享,可在线阅读,更多相关《网络爬虫论文.doc(36页珍藏版)》请在冰豆网上搜索。
摘 要
网络爬虫(WebCrawler),通常被称为爬虫,是搜索引擎的重要组成部分。
随着信息技术的飞速进步,作为搜索引擎的一个组成部分——网络爬虫,一直是研究的热点,它的好坏会直接决定搜索引擎的未来。
目前,网络爬虫的研究包括Web搜索策略研究的研究和网络分析的算法,两个方向,其中在Web爬虫网络搜索主题是一个研究方向,根据一些网站的分析算法,过滤不相关的链接,连接到合格的网页,并放置在一个队列被抓取。
把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。
网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。
如果把整个互联网当成一个网站,那么网络爬虫就可以用这个原理把互联网上所有的网页都抓取下来。
关键词:
网络爬虫;LinuxSocket;C/C++;多线程;互斥锁
Abstract
WebCrawler,usuallycalledCrawlerforshort,isanimportantpartofsearchengine.Withthehigh-speeddevelopmentofinformation,WebCrawler--thesearchenginecannotlackof--whichisahotresearchtopicthoseyears.ThequalityofasearchengineismostlydependedonthequalityofaWebCrawler.Nowadays,thedirectionofresearchingWebCrawlermainlydividesintotwoparts:
oneisthesearchingstrategytowebpages;theotheristhealgorithmofanalysisURLs.Amongthem,theresearchofTopic-FocusedWebCrawleristhetrend.Itusessomewebpageanalysisstrategytofiltertopic-lessURLsandaddfitURLsintoURL-WAITqueue.
Themetaphorofaspiderwebinternet,thenSpiderspideriscrawlingaroundontheInternet.Webspiderthroughweblinkaddresstofindpages,startingfromaonepagewebsite(usuallyhome),readthecontentsofthepage,findtheaddressoftheotherlinksonthepage,andthenlookforthenextWebpageaddressesthroughtheselinks,sohasbeenthecyclecontinues,untilallthepagesofthissitearecrawledexhausted.IftheentireInternetasasite,thenyoucanusethisWebcrawlerprincipleallthepagesontheInternetarecrawlingdown..
Keywords:
Webcrawler;LinuxSocket;C/C++;Multithreading;Mutex
目录
摘 要 I
第一章概述 1
1.1课题背景 1
1.2网络爬虫的历史和分类 1
1.2.1网络爬虫的历史 1
1.2.2网络爬虫的分类 2
1.3网络爬虫的发展趋势 3
1.4系统开发的必要性 3
1.5本文的组织结构 3
第二章相关技术和工具综述 5
2.1网络爬虫的定义 5
2.2网页搜索策略介绍 5
2.2.1广度优先搜索策略 5
2.3相关工具介绍 6
2.3.1操作系统 6
2.3.2软件配置 6
第三章网络爬虫模型的分析和概要设计 8
3.1网络爬虫的模型分析 8
3.2网络爬虫的搜索策略 8
3.3网络爬虫的概要设计 10
第四章网络爬虫模型的设计与实现 12
4.1网络爬虫的总体设计 12
4.2网络爬虫的具体设计 12
4.2.1URL类设计及标准化URL 12
4.2.2爬取网页 13
4.2.3网页分析 14
4.2.4网页存储 14
4.2.5Linuxsocket通信 16
4.2.6EPOLL模型及其使用 20
4.2.7POSIX多线程及其使用 22
第五章程序运行及结果分析 25
5.1Makefile及编译 25
5.2运行及结果分析 26
第六章总结与展望 30
致谢 31
参考文献 32
第一章概述
1.1课题背景
网络爬虫,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。
另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。
网络检索功能起于互联网内容爆炸性发展所带来的对内容检索的需求。
搜索引擎不断的发展,人们的需求也在不断的提高,网络信息搜索已经成为人们每天都要进行的内容.如何使搜索引擎能时刻满足人们的需求。
最初的检索功能通过索引站的方式实现,而有了网络机器人,即网络爬虫这个技术之后,搜索引擎的时代便开始一发不可收拾了。
1.2网络爬虫的历史和分类
1.2.1网络爬虫的历史
在互联网发展初期,网站相对较少,信息查找比较容易。
然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了。
现代意义上的搜索引擎的祖先,是1990年由蒙特利尔大学学生AlanEmtage发明的Archie。
虽然当时WorldWideWeb还未出现,但网络中文件传输还是相当频繁的,而且由于大量的文件散布在各个分散的FTP主机中,查询起来非常不便,因此AlanArchie工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。
由于Archie深受用户欢迎,受其启发,美国内华达SystemComputingServices大学于1993年开发了另一个与之非常相似的搜索工具,不过此时的搜索工具除了索引文件外,已能检索网页。
当时,“机器人”一词在编程者中十分流行。
电脑“机器人”(ComputerRobot)是指
某个能以人类无法达到的速度不间断地执行某项任务的软件程序。
由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。
世界上第一个用于监测互联网发展规模的“机器人”程序是MatthewGray开发的WorldwideWebWanderer。
刚开始它只用来统计互联网上的服务器数量,后来则发展为能够检索网站域名。
与Wanderer相对应,MartinKoster于1993年10月创建了ALIWEB,它是Archie的HTTP版本。
ALIWEB不使用“机器人”程序,而是靠网站主动提交信息来建立自己的链接索引,类似于现在我们熟知的Yahoo。
随着互联网的迅速发展,使得检索所有新出现的网页变得越来越困难,因此,在MatthewGray的Wanderer基础上,一些编程者将传统的“蜘蛛”程序工作原理作了些改进。
其设想是,既然所有网页都可能有连向其他网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。
到1993年底,一些基于此原理的搜索引擎开始纷纷涌现,其中以JumpStation、TheWorldWideWebWorm(GoTo的前身,也就是今天Overture),和Repository-BasedSoftwareEngineering(RBSE)spider最负盛名。
然而JumpStation和WWWWorm只是以搜索工具在数据库中找到匹配信息的先后次序排列搜索结果,因此毫无信息关联度可言。
而RBSE是第一个在搜索结果排列中引入关键字串匹配程度概念的引擎最早现代意义上的搜索引擎出现于1994年7月。
当时MichaelMauldin将JohnLeavitt的蜘蛛程序接入到其索引程序中,创建了大家现在熟知的Lycos。
同年4月,斯坦福(Stanford)大学的两名博士生,DavidFile和美籍华人杨致远(GerryYang)共同创办了超级目录索引Yahoo,并成功地使搜索引擎的概念深入人心。
从此搜索引擎进入了高速发展时期。
目前,互联网上有名有姓的搜索引擎已达数百家,其检索的信息量也与从前不可同日而语。
比如最近风头正劲的Google,其数据库中存放的网页已达30亿之巨。
随着互联网规模的急剧膨胀,一家搜索引擎光靠自己单打独斗已无法适应目前的市场状况,因此现在搜索引擎之间开始出现了分工协作,并有了专业的搜索引擎技术和搜索数据库服务提供商。
像国外Inktomi,它本身并不是直接面向用户的搜索引擎,但向包括Overture(原GoTo)、LookSmart、MSN、HotBot等在内的其他搜索引擎提供全文网页搜索服务。
国内的百度也属于这一类(注),搜狐和新浪用的就是它的技术。
因此从这个意义上说,它们是搜索引擎的搜索引擎。
1.2.2网络爬虫的分类
网络爬虫种类繁多,如果按照部署在哪里分,可以分成:
(1)服务器侧:
一般是一个多线程程序,同时下载多个目标HTML,可以用PHP,Java,Python等做,一般综合搜索引擎的爬虫这样做。
但是,如果对方讨厌爬虫,很可能封掉服务器的IP,服务器IP又不容易改,另外耗用的带宽也是较贵。
(2)客户端:
很适合部署定题爬虫,或者叫聚焦爬虫。
做一个与Google,百度等竞争的综合搜索引擎成功的机会微乎其微,而垂直搜索或者比价服务或者推荐引擎,机会要多得多,这类爬虫不是什么页面都取的,而是只取关心的页面,而且只取页面上关心的内容,例如提取黄页信息,商品价格信息,还有提取竞争对手广告信息的。
这类爬虫可以部署很多,而且可以很有侵略性。
可以低成本大量部署,由于客户端IP地址是动态的,所以很难被目标网站封锁。
1.3网络爬虫的发展趋势
目前,大多数的搜索引擎都是基于关键词的搜索引擎。
基于关键字匹配的搜索技术有较大的局限性:
首先,它不能区分同形异义。
其次,不能联想到关键字的同义词。
Web商业化至今,搜索引擎始终保持着网络上被使用最多的服务项目的地位,然而,随着网上内容的爆炸式增长和内容形式花样的不断翻新,搜索引擎越来越不能满足挑剔的网民们的各种信息需求。
搜索引擎的发展面临着两大难题:
一是如何跟上Internet的发展速度,二是如何为用户提供更精确的查询结果。
所以,传统的引擎不能适应信息