分享
分享赚钱 收藏 举报 版权申诉 / 42

类型URL的分析与跟踪.doc

  • 上传人:yjrm16270
  • 文档编号:7659171
  • 上传时间:2019-05-23
  • 格式:DOC
  • 页数:42
  • 大小:1.37MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    URL的分析与跟踪.doc
    资源描述:

    1、URL 的分析与跟踪摘要关键词:URL 分析,URL 跟踪,正则表达式,XML目录目录 21 绪论 .41.1 本文的目的和意义 .41.2 国内外相关研究概述 .51.3 本文研究内容和采用的方法 .51.4 本文所取得的成果及意义的概述 .62 相关知识介绍 72.1 .NET 简介 2.72.2 Visual C#.NET 简介 82.2.1 Visual C#.NET 语言的产生背景 .82.2.2 Visual C#.NET 特点 .92.3 正则表达式 .92.4 URL5 102.4 XML 相关知识 6.112.4.1 XML 基础 .112.4.2 XML 文件处理 123

    2、系统需求分析 133.1 项目的背景、现状 .133.2 需求概述 .133.2.1 功能需求 133.2.2 非功能需求 133.3 系统数据流图(或用例图、类图) 144 系统设计 154.1 设计的要求和目标 .154.1.1 系统设计的原则 154.1.2 系统设计的目标 154.2 系统体系结构设计 164.3 模块设计 .164.3.1 响应用户输入模块 164.3.2 响应用户输入模块流程图 174.3.3 URL 分析模块 174.3.4 URL 分析模块流程图 184.3.5 URL 地址树模块 194.3.6 URL 跟踪模块 194.3.7 URL 跟踪模块流程图 204

    3、.4 数据库设计 .214.5 用户界面设计 .214.6 核心算法设计 .214.6.1 保存树中的内容到文件 214.6.2 从文件中读取内容到书中 225 系统实现与应用 245.1 系统实现的软硬件平台 .245.2 系统实现之关键代码分析 245.2.1 保存树中的内容到 XML 文件 .245.2.2 读取 XML 的文件,显示到树中 .245.3 系统实现之截图 .255.3.1 系统界面图 255.3.2 软件功能简介 265.3.3 与我联系 265.3.4 是否退出应用程序 275.3.5 输入提示 275.3.6 对有效 URL 的分析 285.3.7 对 URL 的跟踪

    4、 285.3.8 对 html 文件的分析 295.3.9 保存为.XML 文件 .295.3.10 成功保存为.XML 文件 .305.3.11 插入节点 315.3.12 成功插入节点 315.3.13 选中节点,以高亮显示 325.3.14 成功删除所选中的节点 325.3.15 清空 URL 树 335.3.16 读取 URL 树 335.3.17 成功读取 XML 文件 .345.4 系统应用 .346 结论 35致谢 36参考文献 37附录 381 保存 TreeView 中的内容到指定的 XML 文件 382 从指定的 XML 文件读取内容填充到 XML 文件 401 绪论1.1

    5、 本文的目的和意义21 世纪是网络时代,网络已经离我们的生活越来越近,网上购物、视频点播、电子邮件等等,都已经成了许多人生活的一部分。而说起互联网,最容易看见的就是一张一张的网页了,大大小小的网站举不胜举,特别是在 web2.0 新起之后,互联网越来越平民化,不需要太多技术知识,甚至只需简单点几下鼠标,就可以通过 blog,空间等形式在互联网上建立属于自己的网页。而且,这些网页还在以每天几何数级的速度增长着。那么用户是怎么访问这许许多多的网页的?这些网页又是靠什么联系在一起的呢?说到网页,最常见的就是 WWW(World Wide Web)环球信息网,即万维网。简而言之,WWW 是一个以 In

    6、ternet 为基础的计算机网络,它允许用户在一台计算机通过 Internet 存取另一台计算机上的信息。之所以称其为信息网,是因为它的资源可以互相连接的缘故,全世界目前大概有数万个 Web 站,每个 Web 站都可以通过超链接(Hyper link)与其它 Web 站连接,任何人都可以设计自己的Home Page,放上 Web 站,然后在你的 Home Page 上面产生链结,与其他人的Home Page 连接,或是连到其他的 Web 站;别人也一样可以连到你的 Home Page 或是你的 Web 站,整个信息网就这样编织了起来,形成一个巨大的环球信息网。WWW 服务器使用的主要协议是 H

    7、TTP(Hyper Text Transport Protocol)协议,即超文体传输协议。HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP 协议基于客户/服务器模式,在服务器端,运行 Server,当接到客户请求时,将客户所请求的对象以html( Hyper Text Mark-up Language) ,即超文本标记语言形式发送给用户;在客户端,用户通过 Browser 浏览器将 html 文件解析成可视的网页,显示出来。HTTP 使用了统一资源定位器 URL(Uni

    8、form Resource Locator)这一概念。简单地说,URL 就是文档在环球信息网上的“地址“ 。URL 用于标识 Internet 或者与Internet 相连的主机上的任何可用的数据对象。通过在浏览器中的地址栏中输入URL,可以获取该 URL 所指向的 html 文件,而每个 html 文件中又包含多个URL,这样,就可以通过一个网页跳转到另一个网页。但是,面对着这数不清的网站,我们如何可以快速找到所需要的网页,了解他们的层次结构,使我们能更加快速,高效的使用 Internet 网。同时,网页中夹杂着恶意链接的情况也越来越多,如何能找出这些恶意的链接,也是让很多人头疼的问题。而本

    9、系统的任务,就是分析出一个 html 文件内所有的 URL链接,并对这些 URL 链接进行跟踪。这样,我们就能过对整个网站的结构一目了然,同时,方便我们判断哪些是恶意链接,哪些是对我们有用的链接,方便我们能更安全地在 Internet 网中漫游。1.2 国内外相关研究概述目前,国内对 URL 相关研究主要是以下几个方面:1. 基于 URL 的网页过滤器的设计与实现,通过对 Linux 系统内核模块的分析,设计通过网络包截获、网络包过滤两个步骤进行包过滤的实习。在设计过程中,探讨并实现了 URL 阻挡数模型、上下层通信的技术(上下层大规模数据传输和内核主动发信号给进程的技术)和包的截获技术 7。

    10、2. 基于 URL 过滤与内容过滤的网络净化模型,在信息时代里,信息爆炸似地增长着,而为数众多的不良信息充斥其中。针对这种状况,许多的公司与研究机构都提出了自己的过滤模型。该模型在运用 WCCP 协议的前提下,结合了 URL 过滤和内容过滤这两种方法多网络信息进行过滤,该经了传统的 URL 过滤算法 8。3. 基于 URL 聚类的新型 web 筛选机制研究,由于传统的筛选方法在执行效率和准确率上都不能满足网页信息提取的需要,我们提出了一种新的基于领域知识的筛选方法。这种方法不仅通过网页的内容进行筛选,而且利用网页特点,通过 URL 聚类的方法进行筛选 9。4. 面向 Web 应用的前置 URL

    11、 控制机制研究,针对反向代理应用中存在着的网页内嵌 URL 问题,提出了前置 URL 控制机制,构建了该机制的总体模型,包括 URL 定向模型、预分析器、HTML/XML 解析器、URL 修改模块和 COOKIE 修改模块各部件。论述了模型的核心技术动态脚本的HTML 解析和 XSL/XML 联合解析,提出了异地代理的解决方案。在Apache/Linux 下实现了该模型原型,对其功能进行了完整测试,包括性能负载测试 10。5. 针对 URL 的哈希函数,在 Web 学习处理的研究中,不少情况下需要对很大的 URL 序列进行散列(hashing)操作,本文提出了一个针对 URL 数据集合的均匀哈

    12、希函数,它是 ELFhash 函数的变型 11。1.3 本文研究内容和采用的方法考虑到本系统涉及到很多网络方面的技术,而 C# 语言中,封装了很多类来支持有关网络系统的开发,因此,本系统将采用 C#语言来进行开发。C#是一种面向对象的、独立于平台的安全语言,它比 C+更容易学习,而且比 C 和C+更能避免被误用。 C#像 VB 一样具有快速开发能力,像 C+一样强大、更像 Java 一样优美,它就是 C#1。面向对象编程( OOP)是一种软件开发方法,它将程序视为一组协同工作的对象。文【1】指出:面向对象技术代表了一种全新的程序设计思路和观察、表达、处理问题的方法。与传统的面向过程的开发方法不

    13、同,面向对象的程序设计和问题求解符合人们日常自然的思维习惯,降低、分解问题的难度和复杂度,提高整个求解过程的可控制性、可监测性和可维护性,从而达到以较小的代价和较高的效率获得较满意效果的目的。面向对象技术中所指的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。比如,我们日常所看的电视机就是一个具有实在功能的实体,在面向对象的程序设计中,电视就可以表达成一个计算机可理解、可操纵、具有一定属性和行为的对象。C#是唯一没有在设计思路中加入了前辈语言某种特征的新事物,并且它在设计时考虑了多数实际应用的需要。因此,C#对于开发人员来说比 C+等更加简单。C# 是彻底的面向对象的语言,将面

    14、向对象提高了另一个层次。即简单的数据类型都可以被当作对象来处理。C#是类型安全的(type-safe),这意味着很多事情。首先,C#是强类型语言,声明变量时一定要指定变量的类型,赋值时如果类型与变量类型不符,编译时将出错。其次,代码只能访问被授权可以访问的内存位置。最后,C#是自动管理内存的,不允许使用指针直接操作内存。C#不允许使用指针是出于类型安全考虑的,但是并不意味着绝对不能使用指针。如果有人对指针有所偏好,就可以使用 unsafe 这个关键字来标示某段代码,使其跳过.NET 框架的类型安全检查,在这段代码中就可以使用指针直接操纵内存了。这让 C#难以置信地强大。由此,我们对 C#语言的

    15、信心更加坚定,尽管.NET 框架没有限定使用某种特定的语言,但 C#无可置疑是.NET 环境下进行开发的首选语言。1.4 本文所取得的成果及意义的概述本文所取得的成果之一是本系统实现了以下的功能:1. 以本地 htm 文件为输入,分析其中 URL 地址,得到一棵 URL 地址树。2. 以 URL 地址为输入,获取该 URL 地址所指向的 htm 文件,分析其中的URL 地址,得到一棵 URL 地址树。3. 将 URL 地址树存入 XML 文件中。4. 从 XML 文件中取出 URL 数据,以树的形式显示给用户,用户可对该 URL树进行管理,如保存树,清空数,删除树中节点,插入树中节点,等等。5

    16、. 对 URL 进行跟踪,当用户鼠标双击 URL 树上的 URL 叶子节点时,取得该叶子节点存放的 URL,以该 URL 做为输入,调用功能 2),得到一棵新的URL 树,分析得到的 URL 地址做为子节点重新插入原 URL 树中。本系统的主要任务,就是分析出一个 html 文件内所有的 URL 链接,并对这些 URL 链接进行跟踪。这样,我们就能过对整个网站的结构一目了然,同时,方便我们判断哪些是恶意链接,哪些是对我们有用的链接,方便我们能更安全地在 Internet 网中漫游,即对网络冲浪提供便捷。2 相关知识介绍本系统主要的开发环境是.NET 开发平台,采用与.NET 平台量身定做的 C

    17、#语言实现代码的编写工作。在 URL 数据存储方面,使用 XML 文件来进行数据的存储。2.1 .NET 简介 2.NET 技术是微软公司推出的一个全新概念,它代表了一个集合、一个环境和一个可以作为平台支持下一代 Internet 的可编程结构。 .NET 的目的就是将互联网作为新一代操作系统的基础,对互连网的设计思想进行扩展,用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序。用户不需要知道这些文件放在什么 地方,只需要发出请求,然后就可以接受处理的结果,后台的复杂处理过程对用户而言是透明的。.NET 的开发平台如图 所示。.NET 开发平台包括 .NET 框架和.NE

    18、T 开发工具组成部分,.NET 框架(Framework)是整个开发平台的基础,包括公共语言运行库和框架类库,.NET开发工具包括 Visual Studio.NET 集成开发环境和 .NET 编程语言。其中,Visual Studio.NET 集成开发环境用来开发和测试应用程序。.NET 编程语言包括 Visual Basic、Visual C+和新的 Visual C#等用来创建运行在公共语言运行库 (Common Language Run,CLR)上的应用程序。.NET 框架的组成如图 所示。.NET 框架包括公共语言运行库和.NET 类库。公共语言运行库是 .NET 的基础,用户可以将

    19、公共语言运行库看作是一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程管理) ,而且还强制实施严格的类型安全检查,以确保代码运行的安全性和可靠性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET 框架的另一个主要部件是类库,它是一个综合性的面向对象的可重用类型集合,用户使用它不仅可以开发传统的命令行或图形用户界面(GUI )应用程序,而且还可以开发 ASP.NET 所提供的创新应用程序(如 Web 窗体和 XML Web 服务) 。V B公 共 语 言 运 行 规 范 ( C o m m o n L

    20、 a n g u a g e S p e c i f i c a t i o n )A S P . N E T W i n d o w s 窗 体A D O . N E T 和 X M L( )基 类 库 B a s e C l a s s L i b r a r y 公 共 语 言 运 行 库 ( C o m m o n L a n g u a g e R u n )W i n d o w s C O M + S e r v i c e sV C + + C # J S c r i p t VisualStudio.NET图 .NET 开发平台. N E T 框 架W e b 窗 体 W e

    21、 b 服 务A S P . N E TW i n d o w s 窗 体( )公 共 语 言 运 行 库 C R L 操 作 系 统 服 务. N E T 框 架 类类库图 .NET 框架2.2 Visual C#.NET 简介2.2.1 Visual C#.NET 语言的产生背景1995 年,Sun 公司正式推出面向对象的开发语言 Java,并提出跨平台、跨语言的个概念,之后,Java 就逐渐成为企业级应用系统开发的首选工具。为支持 Java 语言,微软开发出基于 Java 语言的编译器 Visual J+,并在很短的时间里由 1.1 版本升级到 6.0 版本,其中 Visual J+ 6.

    22、0 版集成在 Visual Studio 6.0 中。该语言开发的程序不但在 Java 虚拟机上(Java Virtual Machine,JVM)的运行速度大大加快,而且增加了许多新特性,同时还支持调用 Windows API,这些特性使得 Visual J+成为强有力的 Windows 应用开发平台,并成为业界公认的优秀 Java 编译器。由于 Visual J+主要应用在 Windows 平台的系统开发中,因此 Sun 公司认为 Visual J+违法了 Java 的许可协议,违反了 Java 开发平台的中立性,并对微软提出了诉讼,这使得微软处于极为被动的局面。为了改变这种局面,微软决定

    23、推出其进军互联网领域的.NET 计划,C#就是该计划中所要开发的一门重要的开发语言。.NET 计划将是微软今后几年发展的战略核心,其内容非常庞大。它的技术开发平台是 Visual Studio.NET,而 C#作为 Visual J+的替代语言,也集成在该平台中。C#语言的开发成功,对微软未来的发展有着非常重要的意义。微软在 2000年 6 月份举行的“职业开发人员技术大会”上正式发布了 C#语言。微软公司对C#的定义是:“C# 是一种类型安全的、现代的、简单的、由 C 和 C+衍生出来的面向对象的编程语言,它是牢牢根基于 C 和 C+语言之上的,并可立即被 C和 C+开发人员所熟悉。C#的目

    24、的就是综合 Visual Basic 的高生产率和 C+的行动力。 ”2.2.2 Visual C#.NET 特点与 C 和 C+相比,C#具有以下特点:1) 语法更简单;2) 保留了 C+的强大功能;3) 快速应用开发功能;4) 语言的自由性;5) 强大的 Web 服务器控件;6) 支持跨平台;7) 与 XML 相融合。2.3 正则表达式该系统的核心是与 html 文件的内容中的关键字进行匹配,来找出该 html文件中所有的 URL 链接。字符串的匹配有很多方法,在 C#中,字符串的匹配有一个很强大而又简单的方式,就是利用正则表达式的模式匹配。正则表达式的“祖先”可以一直上溯至对人类神经系统

    25、如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。随后,发现可以将这一工作应用于使用 Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson 是 Unix 的主要发明人。正则表达式的第一个实用应用程序就是 U

    26、nix 中的 qed 编辑器。如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。 使用正则表达式,就可以: 1).测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 2).替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

    27、3).根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配 3。当前,所有的文本编辑器都有一些搜索的功能。通常可以打开一个对话框,在其中的一个文本框中键入要定位的字符串,如果还要同时进行替换操作,可以键入一个替换字符串。这种搜索最简单的方式,是可以请求用 Microsoft 替换文档中所有的 MS,这类问题很容易用 string 类的 string.Replac

    28、e()方法来解决。但如果需要在文档中识别某个重复的,该怎么办?编写一个例程,从一个 string类中选择重复的字是比较复杂的。此时使用语言就很合适 4。2.4 URL5在公路上驾驶汽车如果看不懂交通标志,我们将无法到达我们所希望去的地方。同样我们在 Internet 海洋中遨游时,如果不了解什么是统一资源定位器(URL) ,我们也不能在 Internet 海洋中寻找资源获取信息以及用 E-mail 通信,可见统一资源定位器对上网用户来说是多么重要,一个完整的 URL 应由下面几个部分组成:资源类型+主机名+ 子目录(可选)+文件名(可选) 。下面举例来说明统一资源定位器的组成,例如下面的URL

    29、:http:/ 为该 URL 的第一项,用来定义所要查找资源的类型。资源的类型有以下几种:1) HTTP 定义访问 Internet 中的 WWW 页面;2) HTTPS 定义访问具有安全性 WWW 服务器上的页面;3) FTP 定义远程传送主机上的文件或目录;4) FILE 定义访问本地主机上的文件或目录;5) TELNET 定义去登陆一台远程主机;6) NEWS 定义访问一个 USENET 的讨论组;7) SNEWS 定义访问具有安全性 NEWS 服务器上的讨论组;8) ABOUT 定义程序的信息和一些特殊的资源。URL 的第二项就是我们想访问的 Internet 站点名,也叫 Inter

    30、net 主机名,这里的 就是江苏省盐城市信息网络中心的一台小型机的名字,该计算机上存储有我们的 WWW 页面。有了这个计算机名字,Internet 通过域名系统,找到与这台计算机的英文名相对应的数字地址,也叫 IP 地址,就能够在全世界范围找到这台计算机。计算机的名字是由用小数点分隔开的一连串字符组成的,中间不能有空格,且计算机名字前必须加上“/”这一符合。在计算机名字后面,紧跟着的就是 URL 的第三项,它是用来定义信息保存在这台计算机的什么地方,也就是放在哪一个子目录中,每一个子目录前面有一个斜杠。当然子目录是可选的,并不是所有 URL 都要用到子目录,在这里,我们所要找的信息位于“”下

    31、的“dongqiang”子目录中。URL 的最后一项定义了我们要想访问的某个具体信息的文件名,我们这里的文件名是 index.html。2.4 XML 相关知识 62.4.1 XML 基础当前,因特网只是文本和图片的访问媒体,并没有智能搜索、数据交换、自适应表现和个人化的标准。因特网需要超出设置信息访问和显示标准的限制,因特网需要设置信息理解准备标准(尽管数据的通用方式) ,以便软件能够更好地搜索、移动、显示和处理上下文中隐藏的信息。当前的 HTML 并不表示数据。尽管 HTML 提供了显示的丰富的工具,但 HTML 并没有提供任何基于标准的管理数据的方式,于是 XML 应运而生。可扩展标记语

    32、言(XML)是一种提供数据描述格式的标记语言。该语言使跨越多个平台进行更准确的内容声明和获得更有意义的搜索结果变得更加容易。此外,XML 实现了表示与数据的分离。例如,在 HTML 中使用标记语言在告诉浏览器将数据显示为粗体或斜体;而在 XML 中,标记只用于描述数据,例如城市名、湿度和大气压。在 XML 中,使用样式表(如可扩展样式表语言(XSL )和层叠式样表(CSS) )在浏览器中显示数据。XML 使数据与表示及处理分离出来,通过应用不同的样式表和应用程序,能够根据需要显示和处理数据。XML 是为在 Web 上传送而进行优化了的 SGML 的子集。它是由 WWW 联合会(3C )定义的。

    33、该标准化确保了结构化数据的统一性和相对于应用或供应商的独立性。XML 是 Visual Studio.NET 和.NET 框架的很多功能的核心。它大大丰富了HTML 的描述功能,可以描述非常复杂的 Web 页面,如复杂的数学表达式,化学方程式等。简单地讲,XML 的功能可以分为四个方面:结构化、自描述、可扩展和浏览器自适应。下面分别介绍这几种特性:1) 结构化XML 是一种极端标准化的语言规范。同 SGML 一样, XML 文件利用了一个 DTD(document type definition,文件类型定义)规范,DTD 规范是一个用来定义 XML 文件的语法、句法和数据结构的标准。2) 自

    34、描述尽管并不要求 XML 文件必须是可以自描述的(只要求是结构化的) ,但带有自描述可以增强 Web 的检索功能。这些描述被称作“元数据” (metedata) ,它们可以包括有关一个文件的信息如安全(谁可以阅读它) 、阅读范围、文件内容、文件是用什么语言写的、作者是谁以及关于这个文件的其他任何信息。3) 可扩展可扩展性一直是 HTML 的弱点,由于 HTML 被定义成一套固定的标签集,人们不可能增加新的标签而又不破坏 HTML 标准。由于现在 Web 页面需要表达的内容越来越丰富、越来越复杂,标准 HTML 规定的标签远远不能满足页面设计的需要。为了解决标准 HTML 目前的限制并且考虑到未

    35、来 Web 页面发展的需要,就要求新的页面标签具有可扩展性:能够创建新的标签。在 XML 中,标签是由 DTD 定义的,正是它来定义在要给文件的机构中允许与什么样的应用(如风格条、浏览器、检索数据库、打印引擎等) 。4) 浏览器自适应如果一个 XML 文件是结构化的,那么这样的一个文件应该能够适应各种不同的浏览模式。XML 提供的软件功能还能够对用户输入的数据进行动态的计算和显示。2.4.2 XML 文件处理由于 XML 的易共享性等优点,所以 XML 技术越来越多地应用于企业级数据处理等领域,如应用于企业生产报表。新产品分布和年度数据汇总等。XML 逐步成为从中间层传送数据到桌面的工具,由于

    36、 XML 的数据可以通过中间层代理与多层后台数据库源集成,目前绝大多数数据库制造商已全面支持 XML 技术,提供了各种强大的功能来处理 XML 数据。C#在 XML 编程方面具有强大的开发效率,为处理 XML 数据提供了许多相关类,如处理 stream 的类有 XmlReader 和 XmlWriter;DOM 类的有XmlNode,XmlDocument 和 XmlElement 等;Xpath 的类有XmlNavigator;XSLT 的类有 XmlTransform。3 系统需求分析3.1 项目的背景、现状随着网络时代的到来,网络已成为很多人生活的一部分,Internet 网上的站点越来

    37、越多,如何帮助用户在众多的网页中快速找到所要的 URL 链接,同时尽量避免网页中可能的恶意链接的影响,这就需要一个能够分析和跟踪 URL 的工具。本系统正是为了解决这些问题而诞生的。3.2 需求概述3.2.1 功能需求本系统即 URL 的实现与分析,主要完成以下功能:1. 以本地 htm 文件为输入,分析其中 URL 地址,得到一棵 URL 地址树。2. 以 URL 地址为输入,获取该 URL 地址所指向的 htm 文件,分析其中的URL 地址,得到一棵 URL 地址树。3. 将 URL 地址树存入 XML 文件中。4. 从 XML 文件中取出 URL 数据,以树的形式显示给用户,用户可对该

    38、URL树进行管理,如保存树,清空数,删除树中节点,插入树中节点,等等。5. 对 URL 进行跟踪,当用户鼠标双击 URL 树上的 URL 叶子节点时,取得该叶子节点存放的 URL,以该 URL 做为输入,调用功能 2),得到一棵新的URL 树,分析得到的 URL 地址做为子节点重新插入原 URL 树中。3.2.2 非功能需求在系统的实现过程中,以下几个方面也是必须考虑的:1. 实时性:能够对某些处理过程进行相应的跟踪,尽量以较快的时间展现给用户对应的操作结果。如果时间相对延时,那么软件的质量也不能得到保证。所以必须考虑系统的实时性。2. 易用性:本系统不仅供计算机相关人士使用,而且希望非专业人

    39、士能够熟练对该软件的使用,不用记忆复杂的命令,因此采用图形化界面实现本系开发。提供对软件的相应的介绍和操作提示,使得此软件更加人性化。便于用户使用。3. 鲁棒性:主要是对用户操作异常的处理,在不影响系统性能的前提下对异常操作给出相应提示信息。对异常能够进行正确分析、判断与处理,也是衡量软件质量的一个有效手段。所以,在系统的设计中,鲁棒性也必须考虑在内。3.3 系统数据流图(或用例图、类图)本系统的数据流图如下图所示:退 出 本 应 用 程 序开 始:对 U R L 树 进 行 修 改 增 加 节、 ,点 删 除 节 点 等 是 ( Y E S )否 ( N O )有 效 的 U R L / 本

    40、 地 文 件 名读 取 U R L 读 取 本 地 文 件本 地 文 件 名有 效 的 U R L,对 该 U R L 进 行 分 析 形 成 U R L 子 树在 文 件 中 查 找 有 效,U R L 地 址 形 成 U R L 树把 U R L 树 显 示 给 用 户双 击 U R L 树 中 有 效 的 U R L 节 点,实 现 对 U R L 的 跟 踪 并 增 加该 节 点 到 U R L 树把 U R L 树 存 储 到 X M L 文 件. h t m 文 件结 束,读 取 该 文 件 以 U R L 树 的形 式 显 示 给 用 户. x m l 文 件4 系统设计4.1

    41、设计的要求和目标4.1.1 系统设计的原则在该系统的体系架构设计、开发和编码的实现中,遵循了以下原则:1. 系统各个功能模块的设计遵循以下规则:单一职责(SOP)和开放封闭原则(OCP) 12,在软件工程中所论述低耦合、高内聚的指导原则下,展开对系统设计和开发。如此以来,各个功能模块就可以独立地扩展演化。每个模块独立地完成一定的功能,当系统的需求发生变化时,只要对相关模块进行适当的升级,就可以实现对整个系统功能的完善。无论对于该软件的维护还是系统的升级都带来一定的便利。2. 采用面向对象程序设计的基本理念,增强代码的重用性,为系统功能的完善奠定基础。3. 为提高软件的可操作性,使得不具备计算机

    42、相关知识的工作人员也可以使用本软件,采用图形界面的设计方式、界面简洁、直观、流畅,充分体现了人性化设计要求,增强人机交互,提高系统运行效率。4.1.2 系统设计的目标本系统的代码实现是采用 C#语言;采用图形界面的方式,方便用户使用。该系统的实现有以下特点:1. 开发语言选择 C#,C#是面向对象的程序设计语言,封装性号,易于代码的重用和功能的扩展,进而给软件的维护工作带来了便利。开发平台选择.NET,该平台提供了良好的编程界面,这一性能使得开发软件对非计算机专业人员来书,使用非常便利。此外,该平台所提供的开发工具,对软件开发者来说,也大大加速了软件开发的过程,提高了软件开发的效率和质量。2.

    43、 在对软件的设计和开发中,应共实时性、可靠性和鲁棒性等方面来考虑。本系统的实现过程中,给用户提供了友好的界面,对相应的操作提供了对应的提示信息,以及对异常进行了处理。充分体现了上述原则。是对上述原则的最好诠释。3. 在对数据的访问和操作时,采用了文件这一方式。这相对于数据库的设计来说,更加简单与实用。4. 在本系统的设计与实现中,各个功能模块既有一定的独立性,能够完成一定的功能;又与其他模块有机地联系在一起,以完成整个系统的功能。4.2 系统体系结构设计本系统的体系结构设计如下图所示:4.3 模块设计4.3.1 响应用户输入模块对于输入模块而言,很重要的一点是对用户的输入进行判断,将错误的输入

    44、都提示给用户。本系统提供一个文本框,供用户进行输入地址,当用户输入后,按下键盘上的回车键,或者鼠标点击程序界面上的跟踪按钮,就会触发动作监听事件。首先,判断用户输入是否为空,若为空,则说明用户未输入任何数据,就弹出对话框,提示用户进行数据的输入。若不为空,则将用户的输入放入字符串中,调用字符串的 startsWith()方法,判断用户输入的字符串是否以 http:/开头,若是,则说明用户输入的是 URL 地址;判断用户输入的字符串是否以.htm 结尾,若是,则说明用户输入的是本地硬盘上文件的 htm 文件名。判断用户输入的字符串是否以.xml 结尾,若是说明用户输入的是本地硬盘上的 xml 文

    45、件名。对于 URL 地址,应调用读取 URL 模块,以用户输入为 URL 地址,获取该地址所指向的 internet 网络上的文件的内容,若读取成功,则将读取到的文件的内容存入一个字符串中,并将该字符串返回,如果读取失败,可能是因为用户输入的 URL 地址错误,或者网络不通,弹出错误信息对话框,并返回程序主界面。对于本地硬盘上的文件名,则先判断该输入是否是以.htm 结尾或.xml结尾,即是不是 html 文件或 xml 文件,若不是,则弹出错误信息对话框,提示用户本地文件应是 html 文件或 xml 文件。若输入是以 .htm 结尾,则调用文件读取模块,以用户的输入做为本地硬盘上文件的文件

    46、名,读取该文件的内容,若读取成功,则将读取到的文件的内容存入一个字符串中,并返回该字符串,如果读取失败,则说明用户输入的文件不存在,弹出错误信息对话框,并返回程序主界面。对于 html 文件,调用 html 文件处理模块,找出该文件所有的 URL 地址,形成 URL 树并显示给用户。此外允许用户对该树进行相关的操作,如增加节点、删除节点、保存树、清空树等操作。当用户双击该树中有效的URL 节点,实现对该节点的跟踪。对于 xml 文件,调用 xml 文件处理模块。即读取该文件的内容,以树的形式显示给用户并允许用户对该树进行上述的有关树的操作,以及对URL 节点的跟踪。4.3.2 响应用户输入模块

    47、流程图开 始用 户 输 入 是 否 为 空,以 用 户 输 入 为 U R L 地 址 获取 该 地 址 所 指 文 件 的 内 容是 否 以 h t t p : / / 开 头读 取 以 用 户 输 入 为 文 件 名的 本 地 文 件 的 内 容读 取 文 件 成 功读 取 文 件 成 功将 成 功 读 取 的 结 果 存 入 字,符 串 中 并 返 回 该 字 符 串是 ( Y E S )是 ( Y E S )结 束,否 ( N O ) 提 示 出 错 信 息,否 ( N O ) 提 示 出 错 信 息图 响应用户输入模块流程4.3.3 URL 分析模块通过响应用户输入模块,我们得到了用

    48、户输入所指定的文件其内容,该内容存放在一个字符串中,所以 URL 分析模块的输入,就是该字符串。另外,该模块还需要一个输入,就是用户直接输入的字符串。用户输入的字符串直接做为 URL 树的节点插入到树中,之后插入的节点都是这个节点的子节点。Html 是一种标记语言,其基本特点是通过不同的标记来进行不同的操作,这样,就为实现对 URL 的跟踪提供了可能,在 html 文件中,URL 地址基本都出现在 之间。这样,只需匹配 html 文件中的 tag,当匹配到) 被写入到流中. 3. TreeView 标记被写入流中. 4. SaveNodes 方法被调用。把 TreeView 控件中的 Tree

    49、Node 集合传递给此方法,此方法递归调用自身,以保存 TreeView 中的所有节点到流中。此方法的定义请参见附录。 5. TreeView 的结束标记被写入. 6. 最后关闭流.5.2.2 读取 XML 的文件,显示到树中从 XML 文件载入内容到 TreeView 中,载入任务由 DeserializeTreeView 方法实现,该方法使用了 XmlTextReader 类来解析 XML 文档,并填充到 TreeView 对象中。关于 DeserializeTreeView 方法的定义,详情请参见附录:当 XmlTextReader 解析 XML 文件时,适当的动作依赖于 节点类型(NodeType) 做出。如果 节点类型(NodeType) 为 (元素)Element, 则建立一个新的 TreeNode ,并且使用 XML 的节点属性设置它的属性。在非空元素的情况下,父节点(ParentNode) 设置为新的 TreeNode, 以便

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:URL的分析与跟踪.doc
    链接地址:https://www.docduoduo.com/p-7659171.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开