基于多线程的网络爬虫的设计与实现毕业论文(编辑修改稿)内容摘要:
爆炸式增长,并由此诞生了大量的数据,人类进入了一个“大数据时代”。 这使得人们在网上找到自己所需的信息越来越困难,如果 在 信息 的海洋里捞针。 据统计搜索引擎已经成为仅次于电子邮件服务,是人们使用最多的网路服务。 搜索引擎搜集互联网上数以亿计的网页,并为每个关键词建立索引。 用户通过输入自己感兴趣的关键字就能获得与之相关的网页。 从搜索引擎出发就能很快的到达互联网的任何一个地方。 在建立搜索引擎的过程中 ,获取网页是非常重要的一个环节。 爬虫程序就是用来获取网页的程序。 网络爬虫,是一种按照一定的规则,自动的抓取因特网信息的程序或者脚本。 另外一些不常使用的名字还有网路蚂蚁,自动索引,模拟程序或者蠕虫。 网络蜘蛛是通过网页的链接地址来寻找网页,从网站的一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。 如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。 WEB 资源自动获取技术程序就是用来搜集网页的程序。 以何种策略遍历互联网上的网页,也成了该程序主要的研究方向。 现在比较流行的搜索引擎,比如 Google,百度,它们自动获取资源程序的技术内幕一般都不公开。 目前几种比较常用的自动获取资源实现策略:广度优先的爬虫程序,Repetitive 爬虫程序,定义爬行爬虫程序,深层次爬行爬虫程序。 此外 , 还有根据概率论进行可用Web 页的数量估算 ,?用于评估互联网 Web 规模的抽样爬虫程序 ; 采用爬行深度、页面导入链接量分析等方法 , 限制从程序下载不相关的 Web 页的选择性爬行程序等等。 自动 获取资源技术为搜索引擎从互联网上自动获取整个网页,也可以网页中的某一个图片或者是网页链接的文件等资源,是搜索引擎的重要组成部分。 自动获取资源技术程序的实现策略,运行效率直接影响搜索引擎的搜索结果。 不同的搜索引擎,会根据对搜索结果的不同需求,选择最合适的爬行策略来搜集互联网上的信息。 高效,优秀的自动获取资源程序可以使人们在互联网上寻找到更及时,更准确的信息。 本课题旨在根据上述原理设计与实现一个网络爬虫系统。 成都学院学士学位论文(设计) 2 1 概述 研究目的和意义 网络蜘蛛是通过网页的链接地址来寻找网页,从网站的某 一个页面( 通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。 而本课题的主要就是怎样更高效的获取网页,并通过所给条件筛选得到人们所需要的网页。 随着互连网的飞速发展,网络信息量呈现出爆炸性增长的趋势,当今这个时代被称为“大数据”时代。 越来越多的信息涌到人们的面前,然而互联网在人们提供丰富信息的同时,却在如何对信息进行高效便捷使用方面给人民带来巨大的挑战:一方面互联网上的信息种类繁多、丰富多彩,而另一方面却很难找到真正有 用的信息,当人们想从浩淼无边的数据海洋中快速准确的找到自己所需要的信息时,常常需要“搜索引擎”的帮助,而网络爬虫是搜索引擎的重要组成。 它为搜索引擎从 Inter 上下载网页。 作为搜索引擎的资源采集部分,网络爬虫的性能将直接影响到整个搜索引擎索引网页的数量、质量和更新周期。 高效,优秀的爬虫程序可以使人们在互联网上寻找到更及时,更准确的信息。 网络爬虫的历史 在互联网发展的早期,网站数量相对较少,信息数据量不大,查找也比较容易。 然而伴随互联网井喷性的发展,普通网络用户想找到自己所需的资料简直如同在数据 的海洋里捞针,为满足大众信息检索需求的专业搜索网站便应运而生了。 所有搜索引擎的鼻祖,是 1990 年由 Montreal 的 McGill University 三名学生( Alan Emtage、 Peter Deutsch、 Bill Wheelan)发明的 Archie( Archie FAQ)。 Alan Emtage 等想到了开发一个可以用文件名查找文件的系统,于是便有了 Archie。 Archie 是第一个自动索引互联网上匿名 FTP 网站文件的程序,但它还不是真正的搜索引擎。 Archie 是一个可搜索的 FTP 文件名列表,用户必 须输入精确的文件名搜索,然后 Archie 会告诉用户哪一个 FTP 地址可以下载该文件。 由于 Archie 深受欢迎,受其启发,Nevada System Computing Services 大学于 1993年开发了一个 Gopher( Gopher FAQ)搜索工具 Veronica( Veronica FAQ)。 Jug head 是后来另一个 Gopher 搜索工具。 虽然当时万维网还未出现,但网络中文件传输还是相当频繁的,而且由于大量的文件散布在各个分散的 FTP 主机中,查询起来非常不便,因此 Alan Archie 工作原理与现在的 搜索引擎已经很接近,它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。 当时,“机器人”一词在编程者中十分流行。 电脑“机器人”( Computer Robot)是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。 由于专门用于检索信息的“机器人”程序成都学院学士学位论文(设计) 3 象蜘蛛一样在网络间爬来爬去,因此, 搜索引擎的“机器人”程序就被称为“蜘蛛”程序。 世界上第一个用于监测互联网发展规模的“机器人”程序是 Matthew Gray 开发的 World wide Web Wanderer。 刚开始 它只用来统计互联网上的服务器数量,后来则发展为能够检索网站域名。 与Wanderer 相对应, Martin Kosher 于 1993 年 10 月创建了 ALIWEB,它是 Archie 的 HTTP 版本。 ALIWEB不使用“机器人”程序,而是靠网站主动提交信息来建立 自己的链接索引,类似于现在我们熟知的Yahoo。 随着互联网的迅速发展,使得检索所有新出现的网页变得越来越困难,因此,在 Matthew Gray的 Wanderer 基础上,一些编程者将传统的“蜘蛛”程序工作原理作了些改进。 直到一些编程者提出了这样的设想,既然所有网 页都可能有连向其他网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。 到 1993 年底,一些基于此原理的搜索引擎开始纷纷涌现,但是早期的搜索引擎只是以搜索工具在数据库中找到匹配信息的先后次序排列搜索结果,因此毫无信息关联度可言。 而 RBSE 是第一个在搜索结果排列中引入关键字串匹配程度概念的引擎。 最早现代意义上的搜索引擎出现于 1994 年 7 月。 当时 Michael Mauldin 将 John Leavitt 的蜘蛛程序接入到其索引程序中,创建了大家现在熟知的 Lycos( 20xx 年被西班牙网络集团 Terra Lycos Network 收购)。 同年 4 月,斯坦福( Stanford)大学最为著名的两名博士生,美籍华人杨致远( Gerry Yang)和 David Filo 共同创办了Yahoo 公司,并成功地使搜索引擎的概念深入人心。 从此搜索引擎进入了高速发展时期。 目前,互联网上有名有姓的搜索引擎已达数百家,其检索的信息量也与从前不可同日而语。 像国外的 Google,国内的百度,这样的搜索引擎巨擘由于掌握的大多数的入口流量,成为互联网世界的霸主,并带来了巨大的商业价值。 研究现状和发展趋势 因为搜索引擎的商业化应用带来 了巨大的商业价值,所以作为搜索引擎的核心部分的网络爬虫技术,也理所应当的成为了国内外研究 的热点。 对于网络爬虫的研究从上世纪九十年代就开始了目前爬虫技术已经相当成熟。 并催生了像 Baidu 和 Google 这样的网络巨擘,而其他公司也纷纷推出了自己的搜索引擎。 网络爬虫是搜索引擎的重要组成部分。 现今,网络爬虫主要分为通用爬虫和聚焦爬虫两类。 通用搜索引擎的目标是尽可能大的网络覆盖率,通用搜索引擎大多提供基于关键字的检索。 聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获 取所需要的信息。 与通用爬虫 (general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。 同时 , 支持根据语义信息提出的查询。 网络爬虫的发展趋势随着 AJAX/ 等 技术的 流行,如何抓取 AJAX 等动态页面成了搜索引成都学院学士学位论文(设计) 4 擎急需解决的问题,如果搜索引擎依旧采用“爬”的机制,是无法抓取到 AJAX 页面的有效数据的。 除此之外 ,网络爬虫还主要面对着一下的这些问题 (摘自百度百科 [5]) : 强制用 Cookies。 部分站长为了让用户记住登陆信息,强迫用户使用 Cookies。 如果未开启,则无法进行访问,访问页面显示的也不会正常,这种方式会让蜘蛛无法进行访问。 登陆要求。 有些企业站和个人站的设置一定要注册登陆后才能看到相关的文章内容,这种对蜘蛛不是很友好,蜘蛛不会注册、也不会登陆。 动态 URL。 动态 URL 简单的说就是带有问号、等号及参数的网址就是动态 URL,动态 URL不利于搜索引擎蜘蛛的爬行和抓取。 Flash。 有的网站页面使用 Flash 视觉效果是很正常的,比如用 Flash 做的 Logo、广告、图表等,这些对搜索引擎抓取和收录是没有问题的,很多网站的首页是一个大的 Flash 文件,这种就叫蜘蛛陷阱,在蜘蛛抓取时 HTML 代码中只是一个链接,并没有文字。 虽然大的 Flash 效果看上去很好,外观看着也很漂亮,但可惜搜索引擎看不到,无法读取任何内容。 无休止 的 跳转。 对搜索引擎来说只对 301 跳转相对来说比较友好,对其他形式的跳转都是比较敏感,例如: JavaScript 跳转、 Meta Refresh 跳转、 Flash 跳转、 302 跳转。 成都学院学士学位论文(设计) 5 2 网络爬虫 相关 技术 本章将会 对于网络爬虫紧密相关的一些技术进行说明。 URL 统一资源定位符( URL, Uniform Resource Locator)也被称为网页地址,是因特网上标准的资源的地址。 它最初是由蒂姆伯纳斯-李发明用来作为万维网的地址的。 (摘自 百度百科 [5]) URL 是用于完整地描述 Inter 上网页和其他资源的地址的一种标识方法。 Inter 上的每一个网页都具有一个唯一的名称标识,通常称之为 URL 地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是 Inter 上的站点。 简单 地说, URL 就是 Web 地址,俗称“网址”。 URL 结构一般分为两个部分,一个是物理结构,一个是逻辑结构。 在物理结构包括扁平结构和树型结构。 扁平结构就是网站中所有的页面都是在根目录这一级别,形成一个扁平的物理结构。 这比较适合于小型的网站,因为如果太多文件都放在根目录下的话,制作和维护 起来比较麻烦。 而树型结构的意义是在一级目录下分为多个频道或者称之 为目录,然后目录下面再放上属于这个频道的页面,首页、频道首页、频道下的内容就好比树干、树枝、树叶的关系。 逻辑结构就是由网页内部链接所形成的逻辑的或链接的网络图。 比 较好的情况是逻辑结构与前面的树型物理结构相吻合。 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。 URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。 URL 相当于一个文件名在网络范围的扩展。 因此 URL 是与因特网相连的机器上的任何可访问 对象 的一个指针。 URL 的一般形式是: URL 的访问方式 ://主机 :端口 /路径 网络爬虫就是通过提取和分析出网页中的 URL 地址,对相应网络进行爬取。 HTTP 协议 本课题研究的网络爬虫是用于对于 Inter 上的信息进行获取 ,而 HTTP 协议是 Inter 上最重要的协议之一。 HTTP 协议简介 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议 (HTTP)是一种通信协议,它允许将超文本标记语言 (HTML)文档从 Web 服务器传送到客户端的浏览器。 超文本传输协议 (HTTPHypertext transfer protocol) 是分布式,协作式,超媒体系统应用之 间的通信协议。 是万维网( world wide web)交换信息的基础。 HTTP 协议的主要特点可概括如下: 成都学院学士学位论文(设计) 6 支持客户 /服务器模式。 协议 简介 协议 简介 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。 请求方法常用的有 GET、HEAD、 POST。 每种方法规定了客户与服务器联系的类型不同。 由于 HTTP 协议简单,使得 HTTP服务器的程序规模小,因而通信速度很快。 灵活: HTTP 允许传输任意类型的数据对象。 正在传输的类型由 ContentType 加以标记。 无 连接:无连接的含义是限制每次连接只处理一个请求。 服务器处理完客户的请求,并收到客户的应答后。基于多线程的网络爬虫的设计与实现毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。