1、 本 科 毕 业 论 文 研究面向 服务 的网络爬虫系统 网络爬虫系统的设计和构建 Research Net Crawler on Service-Oriented Design and Construction of Net Crawler 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年 月 摘 要 网络的发展彻底改变了我们的生活和工作方式,它让我们在更容易获取信息的同时,也将自己抛弃在无边无际的信息海洋中。 快速发展的现代互联网在带给人们大量信息的同时,也不可避免地产生了难以让用户快速获得有效信息 的问题 。 那么在巨大的网络信息世界里,怎样
2、才能找到需要的数据呢?这就要依靠搜索引擎。作为一种常见的 Web 信息资源检索工具,搜索引擎日益受到人们的关注并得到广泛的使用。 主题搜索引擎中的信息采集,即主题 爬虫系统的搜索策略的研究,对于主题搜索引擎的应用与发展具有非常重要的作用。 Web 的动态性、异构性和复杂性要求网络蜘蛛能够高效率地实现 Web 信息提取,以保证信息的实时性和有效性。 本 文首先对搜索引擎的基本功能进行了简单介绍,引出搜索引擎的重要组成部分 主题爬虫,并分析了主题爬虫的基本结构及工作原理。然后 对网络爬虫的搜索策略进行了讨论。 在深入分析主题页面在 Web 上的分布特征与主题相关性判别算法的基础上,提出了一个面向主
3、题搜索的 ,可定制的,可扩展的 网络蜘蛛模型, 并 对模型的组织结构进行了详细阐述。 重点介绍了基 于 Web 超链接结构和基于网页文本内容 进行 抓取 的启发式搜索 策略, 以及使用这两种方式的队列维护策略, 并对它们进行了实现和定制 。设计并初步实现了一个 可定制 爬虫,介绍了该爬虫的结构以及相关设计细节。最后对该爬虫的性能进行了测试,同时给出了 搜索 结果。 该爬虫抓取页面,并提供给 Lucene,并使用中文分词, 建立索引,供用户界面搜索信息用 , 根据相关度 并给出 搜索 结果 。 关键词 : 搜索引擎 ; 网络爬虫 ; Web 链接分析 Abstract The developme
4、nt of network has completely changed the ways we live and work, which not only enables us to have much easier access to information but also make us immerse ourselves in the boundless information ocean. Then, in the enormous world of network information, how can one find the message needed? It depen
5、ds on the search engine. As a common too for web information retrieval, search engines have been an increasing concern and extensive use. The information collection of the subject of search engine, that is the study of the search strategy of web spider, plays an important role in the application and
6、 development of the subject of search engine. The dynamic, heterogeneity and complexity of Web achieve that the web spider can extract web information efficiently, which guarantees the simultaneity and effectiveness of information. In this thesis, the author makes a brief introduction of the basic f
7、unctions of the search engines, then leads to the important part of search Engine-web spider, and makes analyses of the basic structure and working principle of reptile subject. And then, the author discusses the search strategy of web spider. Based on the deep analyses of the distribution features
8、and discrimination algorithm relevant to the theme pages in the web, the author brings forth a subject-oriented search, scalable and extendable web spider model, whose organizational structures are described in details. The author emphasizes on the introductions of the web-based hyperlink, the heuri
9、stic search strategy crawled based on page texts and the maintaining strategies by means of these two ways. The author also realizes and customizes these two ways. Designing and realizing a preliminarily customized web spider, the author introduces the structure of it and relevant designing details.
10、 The web spider crawl pages and makes available to Lucene, and uses the Chinese words segmentation, sets up index, which is used to make users search information by interface and get the search result according to the correlation. Key Words: Search-Engine;Web Crawlers;Web Hyperlink Analysis 目 录 第一章
11、绪论 . 1 1.1 选题背景 . 1 1.1.1Internet 的发展 . 1 1.1.2 搜索引擎概述 . 1 1.1.3 搜索引擎发展的国内外概况 . 7 1.1.4 现有网络爬虫开源项目 . 8 1.2 本文的主要工作和论文结构 . 10 1.2.1 本文的主要工作 . 10 1.2.2 论文结构 . 10 第二章 背景知识 . 12 2.1 网络爬虫与搜索引擎 . 12 2.2 网络爬虫介绍 . 16 2.1.1 URL 队列和 Web 页面信息的数据结构 . 17 2.2.2 URL 队列处理器 . 17 2.2.3 Web 信息提取器 . 18 2.2.4 网页去重检测器 .
12、18 2.2.5 URL 提取器 . 19 2.2.6 标签信息获取器 . 19 2.2.7 数据库(或索引) . 19 2.2.8 基本流程 . 20 2.3 网络爬虫抓取中的主要技术问题 . 21 2.4 本章小结 . 22 第三章 网络爬虫的分析与详细设计 . 24 3.1 网络爬虫的指标 . 24 3.2 “ 网页追逐者”系统的设计目标 . 25 3.3 “ 网页追逐者 ” 系统框架设计 . 25 3.3.1 系统部分分配设计 . 25 3.3.2 系统的流程设计 . 27 3.4 设计的关键问题 . 29 3.4.1 多线程 . 29 3.4.2 队列维护和及其数据结构 . 31 3
13、.4.3 Web 页面的解析 . 33 3.4.4 更新频率 . 36 3.4.5 相关度的分析 . 37 3.4.6 爬虫抓取深度的设计 . 37 3.4.7 网页库的设计 . 39 3.5 本章小结 . 40 第四章 网络爬虫的实现和结果 . 42 4.1 系统的实现 . 42 4.2 系统的结果 . 49 4.3 本章小结 . 54 第五章 总结与展望 . 55 参考文献 .错误 !未定义书签。 致谢 . 56 Contents Chapter 1 Introduction . 1 1.1 Research Topics Background . 1 1.1.1 Development
14、of Internet . 1 1.1.2 Search Engine Summarize . 1 1.1.3 Search Engine Summarize of Aborad . 7 1.1.4 Open Source Project of Web Crawlers Current . 8 1.2 The Main Work and Structure of This Thesis . 10 1.2.1 Ground Work of This Thesis . 10 1.2.2 Architecture of This Thesis. 10 Chapter 2 Background Kno
15、wledge . 12 2.1 Web Crawlers and Search Engine. 12 2.2 Introduction of Web Crawlers. 16 2.1.1 URL Queue and Data Organization of Web Page Information . 17 2.2.2 Processor of URL Queue . 17 2.2.3 Extractor of Web Page Information . 18 2.2.4 Detector of Remove Repeat Page . 18 2.2.5 Extractor of URL .
16、 19 2.2.6 Acquisition of Lable Information . 19 2.2.7 Data Base(Index). 19 2.2.8 Basic Flow. 20 2.3 Major Techniques of Web Crawlers . 21 2.4 Brief Summary of this Chapter . 22 Chapter 3 Analysis and Detailed Design of Web Crawlers . 24 3.1 Indicator of Web Crawlers . 24 3.2 Design Objective of ”Web
17、 Page Chaser” . 25 3.3 Framework of ”Web Page Chaser”. 25 3.3.1 Design of Each Part of ”Web Page Chaser” . 25 3.3.2 Process Design of ”Web Page Chaser”. 27 3.4 Key Issues of Design. 29 3.4.1 Multi-Thread . 29 3.4.2 Queue Maintain and Data Organization. 31 3.4.3 Analyze of Web Page. 33 3.4.4 Renewal
18、Frequency. 36 3.4.5 Analyze of Relevance . 37 3.4.6 Design of Deep Crawler Grab. 37 3.4.7 Design of Web Base. 39 3.5 Brief Summary of this Chapter . 40 Chapter 4 Implement and Profit of Web Crawlers . 42 4.1 Implement of ”Web Page Chaser” . 42 4.2 Profit of ”Web Page Chaser” . 49 4.3 Brief Summary o
19、f this Chapter . 54 Chapter 5 Summary and Prospect . 55 References .错误 !未定义书签。 Acknowledgement . 56 研究面向服务 的网络爬虫系统 网络爬虫系统的设计和构建 1 第一章 绪论 1.1 选题背景 1.1.1 Internet 的发展 随着 Internet 的快速发展,网络正在深刻地影响着我们的生活。而在网上发展最为迅速的 WWW(World Wide Web)技术,以其直观、简单、高效的使用方式和丰富的表达能力,已逐渐成为 Internet 上最重要的信息发布和交互方式。随着信息时代的到来和发展,
20、 Web 上的信息正在飞速地增长。截止到 2003 年 7月, Internet 上的网页数量就已经超过 30 亿,上网用户数量超过 52 亿,而且网页还在以每天 700 万的速度增加,这带给了人们前所未有的丰 富的信息资源 5。 然而, Web 信息的急速增长,在给人们提供丰富信息的同时,却在 Web 信息的高效便捷使用方面给人们带来巨大的挑战 : 一方面 Web 上的信息种类繁多、丰富多彩,而另一方面却很难找到真正有用的信息。 自上世纪九十年代 WWW 和浏览器出现以来,网络的规模就以惊人的速度在增长。据美国因特网监测公司“网器” (Net craft)28 日宣布,截止 2008 年 2
21、月底,全球互联网网站数量超过 1.6 亿,达 162662053,较一个月前增加了 450万。网页数量也达到百亿级别 6。 1.1.2 搜索引擎概述 Internet 上的信息量之大、范围之广、用户之多都比以往任何时候表现得突出,然而如何从浩瀚的信息海洋中得到所需要的信息就显得更加重要。 如何有效地提取并利用 万维网 上的 信息成为一个巨大的挑战。 网络搜索引擎的出现从某种程度上解决了这个问题,它是目前比较有效的网上信息获得方法,多数网上用户使用搜索引擎拿过来获得所需的信息。据 CNNIC 的统计,用搜索引擎搜索仅次于电子邮件的应用 1。 研究面向服务 的网络爬虫系统 网络爬虫系统的设计和构建
22、 2 1.1.2.1 搜索引擎概念 搜索引擎 (Search Engine), 并不真正搜索互联网,它搜索的实际上是预先整理好的网页索引数据库。真 正意义上的搜索引擎,通常指的是收集了 Internet上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。 1.1.2.2 搜索引擎原理 大致 可以分为四步:从互联网上抓取网页、建立索引数据库、在索引数据库中搜索排序、对搜索结果进行处理和排序。 搜索引擎的一般结构,如图 1-1所示 : 图 1-1 搜索引擎的一般结构
23、1. 从互联网上抓取网页 。 利用能够从互联网上自动收集网页的 Spider 系统程序,自动访问互联网,并沿 着任何网页中的所有 URL 爬到其它网页,重复这过程,并把爬过的所有网页收集回来。 2. 建立索引数据库 。 研究面向服务 的网络爬虫系统 网络爬虫系统的设计和构建 3 由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在 URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。 3
24、. 在索引数据库中搜索排序 。 当用户输入关键词搜索后,由搜索系统程序从 网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已计算好,所以只需按照现成的相关度数值排序,相关度越高,排名越靠前。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户 4. 对搜索结果进行处理排序 。 所有相关网页针对该关键词的相关信息在索引库中都有记录,只需综合相关信息和网页级别形成相关度数值,然后进行排序,相关度越高,排名越靠前。最后由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。 1.1.2.3 搜索引擎的发展史 所 有搜索
25、引擎的祖先,是 1990 年由 Montreal的 McGill University 的 学生Alan Emtage、 Peter Deutsch、 Bill Wheelan 发明的 Archie(Archie FAQ)。当时World Wide Web 还未出现。 Archie 是第一个自动索引互联网上匿名 FTP 网站文件的程序,但它还不是真正的搜索引擎。 Archie 是一个可搜索的 FTP 文件名列表,用户必须输入精确的文件名搜索,然后 Archie 会告诉用户哪一个 FTP地址可以下载该文件。 由于专门用于检索信息的 Robot 程序 像 蜘蛛 (spider)一样在网络间爬来爬去,因此,搜索引擎的 Robot程序被称为 spider(Spider FAQ)程序。世界上第一个 Spider 程序,是 MIT Matthew Gray 的 World wide Web Wanderer,用于追踪