基于java的网络蜘蛛程序算法研究内容摘要:
器人程序必须能够找到保存在它所访问的每个网页上的链接。 网络机器人程序通过分析网页的 HTML代码查找网页内所有链接到其它网页的标签,根据标签的属性 HREF(Hypertext Reference,超文本链接 )的值,网络机器人程序将会遇到三种链接类型:内部链接( Internal link)、外部链接 (External link)和其它连接 (other link)。 内部链接指的是超链接所指向的网页与包含该链接的网页在同一台 Web 服务器中;外部链接指的是超链接所指向的网页所在的 Web 站点与包含该链接的 Web 站点不同;其它链接指的是超链接指向非网页的资源,如指向 Email地址等。 程序的设计思想 开发和设计网络机器人程序有两种思想可以选择:一种就是将程序设计为递归的程序;另一种就是将程序设计为非递归的程序。 采用递归设计的程序思路清晰简单,但存在两个主要的问题:第一问题就是如果程序要运行很多次,被压入递归的堆栈会变得非常大,它可能会耗尽整个堆栈的内存并终 止程序的运行;第二问题就是多线程技术与递归技术不能兼容。 所以开发高性能的网络机器人程序不能采用递归的程序设计思想。 我们研究的高性能网络机器人采用的是非递归程序设计思想,当使用非递归的方法时,先给定网络机器人一个要访问的网页集合,它会把这一集合加到它将要访问站点的队列中去。 网络机器人发现每个新的网页时不使用调用自身的方法,而是将新发现的链接加入到该队列中。 当网络机器人处理完当前的网页后,它会在队列中查找要处理的下一页。 实际工作的时候网络机器人总共使用了四个队列,每个这样的队列保存着同一处理状态的 URL,它 们如下: 等待队列 :在这个队列中, URL 等待被网络机器人处理。 新发现的 URL 被加入到这个队列。 处理队列 :当网络机器人开始处理时,它们被传送到这个队列。 当一个 URL 被处理后,它被移送到错误队列或者完成队列中。 错误队列 :如果在处理该网页时发生了错误,它的 URL 将被加入到错误队列中。 网络机器人将不会对加入到错误队列的网页做进一步地处理。 完成队列 :如果在下载网页时没有发生错误,该 URL 将被加入到完成队列中。 加入到完成队列中的 URL将不会再移入其他队列中。 URL 处理状态流程图 : 发现 URL 错误队列 完成 URL 完成队列 等待队列 处理队列 图 1 URL 处理状态流程图 算法分析 我 们的算法设计主要就是依据非递归的思想构造的,当一个 URL 被加入到等待队列中时,网络机器人就会开始运行。 只要等待队列中有一个网页或网络机器人正在处理一个网页,网络机器人就会继续它的工作。 当等待队列为空并且当前没有处理任何网页,网络机器人就会停止它的工作。 基本的算法如下所示: Initialize URLS。 //用一个 URL 集合初始化网络机器人。 Queue enum{WaitQ,FinishQ,RunQ,MistakeQ}。 //队列类型:等待、完成、处理、错误队列。 FileText。 LinkType enum{InternalLink,ExternalLink,OtherLink}。 //超链类型:内部、外部、其他链接。 Begin For url in URLS Do PopQueue(url,WaitQ)。 //初始化 URL 集合被加入到等待队列中。 While WaitQ is not empty Do//判断等待队列是否有 URL.。 Begin。基于java的网络蜘蛛程序算法研究
相关推荐
社会不可或缺的。 人们可以 使用计算机办公、娱乐、购 物等等, 计算 机的发展让我们的生活变得更加丰富,更加便捷。 在计算机上 玩游戏,也 成为 我们主要的娱乐方式之一。 但 纵观 整个 游戏 领域, 绝大多数 的 主流 游戏 都是 使 用 C 语言 或 C++语言 开发的。 使用 Java 语言 编写 的游戏微乎其微。 造成这一现象 的原因可能是 每种 语言的特性所决定的 , Java
物 介 绍 Wareimage Varchar 50 否 否 图片 路 径 Wareif Int 4 否 否 是否 推 荐 Dattime Datetime 8 否 否 发布 时 间 ( 2) tb_Shop()表主要用于 存储用户购买商品之后所填写的订购单的相关信息。 订单商品表的结构如表 42所示。 表 42 订单商品表 列名 数据类型 长度 主键 否 允许空 功能描述 Subid
回登陆,不成功返回会员中心选择服务。 如忘记密码,填写相关信息获取密码; E. 登陆成功进入会员专区首页进行商务活动; F. 商务活动结束注销。 管理员进入管理首页 是否登录 验证密码 进行管理活动 结束管理活动 14 图 用户商务活动流程之登陆详细设计 ( 2)商务活动流程详细设计: 进入客户专区首页做如下选择: ; ; ; ,若购买商品则进入 f; ,结束商务活动;。 购物首页 失败提示页面
发现系统运行中可能出现的问题,并要有快速戒圈的方法。 市场可行性 市场可行性是针对本系统是否能在市场流通所做的分析。 汽车租赁系统主要针对的用户是租赁公司和租车客户,只要有租赁交易就可能需要本系统,而且本系统占用空间小,不会对租赁公司造成负担,租车客户也能很好的进行选车、租车交易,所以在市场上流通是可行的。 操作可行性 本系统虽然小,但能满足一般租赁方和租车客户的需求,界面简单明了
大降低了对客户浏览器的要求,即使客户浏览器端不支持 Java,也可以访问 JSP 网页。 JSP 全名为 Java Server Pages,其根本是一个简化的 Servlet设计,他实现了 Html语法中的 java 扩张(以 %, %形式)。 JSP 与 Servlet 一样,是在服务器端执行的。 通常返回给客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。 Web
量及访问性质 Servlet 可以是其它服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端硬盘激活 Servlet 的作用。 Servlet 可被链接 (chain)。 一个 Servlet 可以调用另一个或一系列 Servlet,即成为它的客户端。 山东财经大学学士学位论文 3 采用 Servlet Tag 技术,可以在 JSP页面中动态调用