jsp266java基于网络爬虫的搜索引擎设计

jsp266java基于网络爬虫的搜索引擎设计

350

更新时间:2021-05-25

所属分类:java设计

评论回复:0

语言:java/jsp

数据库:mysql

开发环境:myeclipse/eclipse

 

下载权限

本文从搜索引擎的应用出发,探讨了网络蜘蛛在搜索引擎中的作用和地住,提出了网络蜘蛛的功能和设计要求。在对网络蜘蛛系统结构和工作原理所作分析的基础上,研究了页面爬取、解析等策略和算法,并使用Java实现了一个网络蜘蛛的程序,对其运行结果做了分析。



网络爬虫在搜索时往往采用一定的搜索策略。

一是宽度或深度优先搜索策略:搜索引擎所用的第一代网络爬虫主要是基于传统的图算法, 如宽度优先或深度优先算法来索引整个Web, 一个核心的U RL 集被用来作为一个种子集合, 这种算法递归的跟踪超链接到其它页面, 而通常不管页面的内容, 因为最终的目标是这种跟踪能覆盖整个W eb. 这种策略通常用在通用搜索引擎中,因为通用搜索引擎获得的网页越多越好, 没有特定的要求.

二是宽度优先搜索算法(又称广度优先搜索) 是最简便的图的搜索算法之一, 这一算法也是很多重要的图的算法的原型.单源最短路径算法和P rim 最小生成树算法都采用了和宽度优先搜索类似的思想.宽度优先搜索算法是沿着树的宽度遍历树的节点, 如果发现目标, 则算法中止. 该算法的设计和实现相对简单, 属于盲目搜索. 在目前为覆盖尽可能多的网页, 一般使用宽度优先搜索方法. 也有很多研究将宽度优先搜索策略应用于聚焦爬虫中. 其基本思想是认为与初始U RL 在一定链接距离内的网页具有主题相关性的概率很大. 另外一种方法是将宽度优先搜索与网页过滤技术结合使用, 先用广度优先策略抓取网页, 再将其中无关的网页过滤掉. 这些方法的缺点在于, 随着抓取网页的增多, 大量的无关网页将被下载并过滤, 算法的效率将变低。

  三是深度优先搜索所遵循的搜索策略是尽可能“深”地搜索图. 在深度优先搜索中, 对于最新发现的顶点, 如果它还有以此为起点而未探测到的边, 就沿此边继续汉下去. 当结点v 的所有边都己被探寻过, 搜索将回溯到发现结点v 有那条边的始结点. 这一过程一直进行到已发现从源结点可达的所有结点为止. 如果还存在未被发现的结点, 则选择其中一个作为源结点并重复以上过程, 整个进程反复进行直到所有结点都被发现为止. 深度优先在很多情况下会导致爬虫的陷入( t rapped) 问题, 所以它既不是完备的, 也不是最优的。


目录

摘要 2

Abstract 3

一、项目背景 5

1.1搜索引擎现状分析 5

1.2课题开发背景 6

1.3网络爬虫的工作原理 8

二、系统开发工具和平台 9

2.1关于java语言 9

2.2 Jbuilder介绍 10

2.3 servlet的原理 12

三、系统总体设计 14

3.1系统总体结构 14

3.2系统类图 14

四、系统详细设计 17

4.1搜索引擎界面设计 17

4.2 servlet的实现 19

4.3网页的解析实现 20

4.3.1网页的分析 20

4.3.2网页的处理队列 21

4.3.3 搜索字符串的匹配 22

4.3.4网页分析类的实现 22

4.4网络爬虫的实现 25

五、系统测试 33

六、结论 35

致谢 35

参考文献 36

下载
本地下载
- MB
188083800