主题的网络爬虫设计与实现(附件)

摘要:网络爬虫是一种能够自动采集互联网信息的程序。网络爬虫不但能够作为搜索引擎的采集器,而且可以用于特定信息的采集,根据某些特定的要求采集网站中的信息,如就业,租房信息等。本文设计并实现了一种基于主题的网络爬虫程序。网络爬虫采用何种搜索策略和如何评价当前页面的主题相关度是基于主题的网络爬虫需要解决的关键问题。本文设计的网络爬虫采用广度优先搜索,对url进行解析、去重等。并应用Java多线程,使爬虫在抓取网页的过程中更有效率。通常评价页面相关度是采用基于内容评价的搜索策略,本文实现了三个常用的相关度评价算法分别是基于网页内容的相关度算法、基于网页内容和标题的相关度算法、基于网页内容和链接结构的相关度算法。
目录
摘要 1
关键词 1
Abstract 1
Key word 1
1. 选题背景 1
1.1 问题的提出 1
1.2 国内外研究状况 1
1.3 研究的目的和内容 2
2. 相关技术介绍 2
2.1 网络爬虫的定义 2
2.2 搜索策略浅析 2
2.2.1 广度优先搜索策略 2
2.2.2 深度优先搜索策略 2
2.2.3 最佳优先搜索策略 3
2.2.4 基于内容评价的搜索策略 3
2.2.5 基于链接结构评价的搜索策略 3
2.3 Java多线程 3
2.3.1 创建线程 3
2.3.2 多线程同步 3
2.4 判断相关度算法 4
3. 主题网络爬虫的设计与实现 4
3.1 网络爬虫总体设计 4
3.2 工作过程 5
4. 系统分析与设计 5
4.1 初始种子和关键词 5
4.2 爬虫的搜索策略 5
4.3 网页信息的提取 6
4.3.1 网页内容的提取 6
4.3.2 URL的提取 6
4.4 URL队列维护 6
4.5 多线程的实现 6
4.6 主题相关度判断 7
4.6.1 基于网页内容
 *好棒文|www.hbsrm.com +Q: *351916072* 
的相关度算法 7
4.6.2 基于网页内容和标题的相关度算法 7
4.6.3 基于网页内容和链接结构的相关度算法 8
4.6.4 相关度算法的性能分析 9
5. 测试 10
6. 总结 11
致谢 11
参考文献 11
基于主题的网络爬虫设计与实现
引言
随着信息的多样化,通用搜索引擎已经无法满足特定用户的需求。所以就产生了为特定领域服务的搜索引擎。基于主题的网络爬虫是主题搜索引擎的关键和基础,这是由用户根据特定主题,在互联网上可以自动抓取和主题相关网页的应用程序。
基于主题的网络爬虫的主要目标是以较好的方式,高效地抓取Web中与主题相关的网页。与通用的搜索引擎进行比较,它减少了资源的利用和支持膨胀性的检索操作。就基于主题的网络爬虫来说,最主要的工作怎么过滤与主题不相关的网页。
选题背景
1.1 问题的提出
互联网相当于一个巨大的数据库,将其中庞大的数据进行有效的分类和组织具有重要的实用价值。搜索引擎作为一种帮助人们检索信息的手段,通过它人们可以访问互联网。然而,通常的搜索引擎普遍存在局限性。由于用户所在的领域、背景的不同,用户通常会产生不同的搜索请求,通用的搜索引擎会抓取很多用户不在意的网页。因此,设计一个灵活、高效的网络爬虫是亟待解决的问题。
1.2 国内外研究状况
网络爬虫自从上个世纪九十年代开始到现在,人们进行了不断的探索与研究,现今已经有越来越多成熟的爬虫技术出现,网络爬虫是搜索引擎的信息采集器,是搜索引擎的基础。较为知名的开源网络爬虫包括Nutch,Heritrix等。爬虫技术中最重要的是爬虫的搜索策略和网页内容评价策略。
传统的网络爬虫主要是用来抓取静态网页,由于AJAX的普及,怎样抓取AJAX和其他动态页面变成搜索引擎亟待处理的技术难关。 AJAX使用了JavaScript驱动异步请求/响应机制,以前的爬虫对JavaScript的语义的了解比较匮乏,基本上无法模拟触发JavaScript的异步调用并解析返回的异步回调逻辑和内容。所以可以看出,传统的爬虫是基于协议驱动的,AJAV的普及,现今爬虫是基于事件驱动的[1]。
随着互联网的飞速发展,使得搜索所有新兴的网络变得更加的难做到,因此,一些学者将传统的爬虫程序的做了一些改进。其假设,因为所有的网页都有可能有其他网站的超链接,所以用网站的链接进行跟踪,就能够检索整个因特网[5]。到1993年底,一些基于这一原则的搜索引擎已经出现。
1.3 研究的目的和内容
本文主要研究如何实现高效的基于特定主题的网络爬虫。
可以多线程进行抓取。
可以进行面向主题的抓取。
本文研究的主要内容是如何实现高效抓取主题相关的网页。
1.如何具备更强的抓取能力。
2.如何分辨重复的网页内容。
3.如何确定主题相关性。
2. 相关技术介绍
2.1 网络爬虫的定义
网络爬虫是一个能自动抓取网页内容的程序,它为搜索引擎从互联网上下载网页。普通的网络爬虫是从一个甚至多个初始链接开始,提取初始链接上的URL;爬虫不满足停止条件时,爬虫会不停地从当前页面上提取新产生的URL放入待访问队列。
基于主题的网络爬虫就是用户事先设定好初始链接和主题等,在进行抓取网页的过程中,根据设计的主题相关度算法计算当前当前页面的相关度,抛弃与主题无关的页面,提取与主题相关的页面并放入待访问队列,之后再依据相关的搜索策略从待访问队列里选择下一个要抓取的页面,爬虫不满足停止条件时,重复以上操作。
2.2 搜索策略浅析
2.2.1 广度优先搜索策略
广度优先搜索算法(也称为宽度优先搜索)是搜索算法中的一个最简单的算法,该算法的思想和树的层序遍历相同。首先在图中选择一个节点作为搜索的初始节点,然后根据层序遍历的方法,按层对图进行搜索。
对于图的宽度优先搜索,我们需要一个队列数据结构用于保存当前节点的子节点。具体的算法如下所示:
顶点V入队列
如果队列非空,则继续执行,否则算法为空
出队列操作,获取队头节点V,访问顶点V且标记V为已经被访问
查找顶点V的第一个邻接顶点col

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/723.html

好棒文