毕业设计(论文)-新闻自动提取系统.doc_第1页
毕业设计(论文)-新闻自动提取系统.doc_第2页
毕业设计(论文)-新闻自动提取系统.doc_第3页
毕业设计(论文)-新闻自动提取系统.doc_第4页
毕业设计(论文)-新闻自动提取系统.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大庆石油学院本科生毕业设计(论文) i 摘 要 新闻自动提取系统是伴随 internet 的发展而出现的,它实现了既让用户享受 到 internet 的新闻服务,又提高了企业或公司的网络安全性和资源利用效率的双 重功能。 系统用 delphi 自动地从 internet 上将网上新闻用二级文本分析技术提取出来 并存储进数据库,然后再用 asp.net 通过访问 sql server 数据库将新闻发布,供 局域网内的用户浏览和查询。 系统具有自动性、经济安全、易改变性和开发工具新的特点。新闻的提取、 数据库更新及网页内容的更新全部是自动实现的,不需要人工干预,这就大大节 省了人力资源;系统只有一台主机与 internet 相连,提高了安全性,也节约了费 用;系统采用模块式编程方法,当某部分改动时只需改写少量代码就能保证系统 重新正确运行;系统用下一代 windows 系统工具 asp.net 开发,所以有很强的沿 用性。 关键词:新闻提取;ngws;internet;n 级网页 大庆石油学院本科生毕业设计(论文) ii abstract the automatic news extract system is born with the development of internet. it implements two functions at the same time, one is to let users share internet news service, the other is to improve the enterprise or companys network security and resource efficiency. the system uses two-level text analysis to extract news from internet then store them to database automatically, after that use asp.net as developing tools to access the database and distribute the news to local area network for users to explore and query information that they need. the features of news extract system are automatism, security and price, flexibility, new developing tool. the main feature of the system is news extract, database access and web refresh are automatic implemented, its no need to intervene by man, so much more labor is saved;in the whole system there is only one mainframe is connected to internet, the security is improved, the expense is less as well;the system takes module programming coded method, when some part needs to be changed, rewrite several lines of code can make the system function correctly as before;the last part of the system is developed by asp.net , which is called ngws(next generation windows system),so it can be used for a long time. keyword: news extract;next generation windows system; internet;n-level web 大庆石油学院本科生毕业设计(论文) iii 目 录 第 1 章 新闻自动提取系统概述.1 1.1 系统功能和组成1 1.2 系统的特点及技术创新2 第 2 章 开发工具介绍.3 2.1 delphi6.0 简介 .3 2.2 sql server 简介.5 2.3 新一代网页开发工具asp.net 8 第 3 章 需求分析.12 3.1 构建新闻自动提取系统的必要性和功能12 3.2 新闻自动提取的可行性12 第 4 章 系统总体设计.14 第 5 章 详细设计.17 5.1 技术难点与解决方案17 5.2 delphi 新闻提取 18 5.3 delphi 数据库访问部分 25 第 6 章 系统测试.29 结束语.30 参考文献.31 致 谢.32 大庆石油学院本科生毕业设计(论文) 1 第 1 章 新闻自动提取系统概述 1.1 系统功能和组成 1.1.1 系统简介 新闻自动提取是指一台计算机作为主机将 internet 上的新闻自动提取到本机, 然后以网页的形式发布出去,供局域网内的其它用户访问浏览。而新闻自动提取 系统就是运行在主机上完成上述功能的一套软件。 1.1.2 系统功能 (1) 本系统可提供多个网站的新闻,用户能选择自己喜爱的网站; (2) 系统已将新闻分成教育、体育、财经、娱乐等多类,用户可依兴趣选择 类别,系统还提供了简单的模糊查询的功能; (3) 本系统的新闻随着 internet 上网站的更新而变化,也可将新闻存储起来, 形成一个可查询的信息库; (4) 本系统可扩展为图片、mp3、mtv 等自动提取系统。 1.1.3 系统组成 系统前端开发工具为 delphi 和 asp.net,后台数据库为 sql server,因此,系 统也由三大部分组成:sql server 部分,delphi 部分,asp.net 部分。 (1) sql server 部分 这部分要创建数据库、数据表、表结构及对数据库的安全性和数据进行管理, 也包括建立用户登录、数据冗余等控制。 (2) delphi 部分 这部分用 delphi 定时访问 internet 的各大网站,将其上的新闻提取出来,并 依靠 delphi 的数据库访问机制按新闻类别存入相应的数据表,这部分还有对数据 库进行清空、查看等功能。 (3) asp.net 部分 这部分主要将数据库中的新闻发布出来,并实现按关键字对新闻内容的简单 查询,实际还实现了添加、删除、排序等功能。 大庆石油学院本科生毕业设计(论文) 2 1.2 系统的特点及技术创新 1.2.1 系统特点 (1) 整个系统完全是自动执行的,包括新闻提取、数据库更新、网页内容的 更新,这就使网络管理员从繁重的人工下载中解脱出来; (2) 系统具有良好的扩展性,它可扩展为图片、mp3、mtv 等许多自动提取 系统; (3) 在数据库设计时和数据插入时考虑到了数据冗余的控制。 (4) 由于系统用到的主要编程工具是 delphi 和 asp.net,所以系统有很好的 网络性能。 1.2.2 系统创新 (1) 整个新闻提取过程完全靠程序实现,而且库中的内容随各大网站新闻内 容的变化而自动刷新,刷新的间隔在最初设定,不需要人工干预,这是系统最突 出的特点; (2) 在用 delphi 提取新闻内容时,从理论上不但可以提取出各大类主页中所 有二级新闻的内容,而且经改进后可获取多级新闻内容,这是在理论上的重大突 破; (3) 提取经济、娱乐、体育等类新闻的标题可直接从二级页的网页标题提取, 大大化简了对标题的提取,也更直观; (4) 系统对每类新闻都有一个备份表用于存储所有提取过的新闻,这样用户 不但可以选择看最近的新闻,也可看历史上的新闻; (5) 系统提供了让用户根据自己的兴趣按关键字选择想要的新闻,即模糊搜 索功能。 大庆石油学院本科生毕业设计(论文) 3 第 2 章 开发工具介绍 2.1 delphi6.0 简介 2.1.1 delphi 的基本功能简介 delphi 是当前最强大,最灵活的基于 windows 的可视化应用程序开发工具。 它将可视化技术与 object pascal 语言完美结合,具有良好的数据库访问能力,是 一个非常强大的应用程序开发组件的集合,被喻为“第四代编程语言” 。delphi 6.0 是 borland 公司继 delphi 5.0 后的又一力作。 delphi 的功能十分强大,这里只分类介绍如下: (1) 灵活的 vcl(visual component libarary)组件1 vcl 是 delphi 最重要的组成部分。在设计时添/删除组件、自定义组件、使 用面向对象技术继承其它组件的行为,这些能力都是决定 delphi 效率的关键因素。 在许多场合,编写 vcl 组件都采用固定的面向对象的程序设计方法。 (2) 强大的数据库功能 delphi 具有所有工具中最灵活的数据库结构,对大多数基于数据库平台的应 用程序来说,bde(borland database engineer)的功能已足够强大,程序设计人员 无需直接同数据库文件打交道,就可以操作和处理各个数据库文件。 (3) 完善的网络编程功能 作为一种流行的编程语言,优良的网络性能是十分重要的。delphi 提供了很 多与网络的接口,使用起来非常方便,而且 delphi 程序可在 windows 和 unix 操 作系统下运行,无需改变代码,所以说 delphi 有强大的网络功能是当之无愧的。 2.1.2 delphi 6.0 的新特性2 (1) delphi 6.0 通过完全基于 soap 的网络服务和 xml 数据交换支持,从根 本上简化了在互联网上构筑下一代电子商务的程序。xml 及网络服务技术和 delphi 6.0 的无缝融合为工业标准化的网络服务和互联网上 b2b、b2c 和 p2p 的 集成带来了唯一的快速开发工具。 (2) websnap 使得 delphi 能够直接融入当今的网站开发团队。通过 websnap, delphi 程序能够无缝地集成到网站和使用现今流行的 html 开发环境(如 dreamweaver、frontpage、vbscript 和 javascript)的网站开发团队中。 大庆石油学院本科生毕业设计(论文) 4 (3) 编写单一源代码的 windows/linux 程序。delphi 6.0 和 kylix 兼容,使用 交叉平台的 clx 控件库和可视化设计器编写的高性能、可移动式的 windows 程 序能在 linux 上用 borland kylix 轻松编译。 (4) 支持最新的 windows 2000/me 和 office 2000 图形用户接口。通过 actionbands、actionmanagers 和 shell controls 可以轻松制作最流行的、符合微软 ui 最新趋势的动态用户界面。通过让最终用户完全自定义他们自己的 ui 使用来 排除复杂的用户界面。 2.1.3 delphi 的 ide 环境 当我们打开 delphi 6.0 的时候,首先进入的就是它的集成开发环境 (integrated development environment,ide),我们编写、运行和调试程序就是 在这个环境中完成的。 在 delphi 6.0 中,集成开发环境由碟码编辑器、调试器、工具栏、图像编辑 器和数据库工具组成,所有这些以集成的方式进行操作。 (1) 主菜单 主菜单是位于屏幕最顶端的主控窗口的菜单栏,通过它几乎可以访问所有的 delphi 的提供工具。 (2) 工具条 工具条提供了一组快捷的按钮来让用户能迅速访问到 delphi 6.0 中常用功能。 (3) 控件模板 位于主控窗口工具条右边的就是控件模板,通常我们也将它们称为 delphi 的 组件。delphi 6.0 将很多功能相近的控件放在同一个控件组中。按一般情况来说, 只需要双击一个控件就可以把它放到应用程序的窗体中去。使用 delphi 进行编程 大部分情况就是使用各种控件,只要掌握了基本控件的使用方法,你就可以很方 便地编制出一般的应用程序了。 (4) 窗体设计器 当你第一次运行 delphi 6.0 的时候,在整个界面的中间可以看到一个标题用 程序的外观进行设置,它是整个 delphi 应用程序设计的基础。在 delphi 6.0 的窗 体设计器是所见即所得的,你可以在窗体上任意放置自己所需要的可视或者是不 可视控件。 (5) 代码编辑器 位于窗体设计器的下方的那一块编辑区域称为代码编辑器。在 delphi 6.0 中, 代码编辑器由两部分组成,左侧是一个代码分析器,它可以让你很方便地找到应 大庆石油学院本科生毕业设计(论文) 5 用程序中的类、各种定义的方法和变量等。右侧则是用户输入代码的地方,我们 从代码编辑器窗体上的标签可以看到,现在打开的文件是 unit1pas 文件,每一 个编辑的文件都可以打开在一个标签页中,你可以通过点击标签的方法方便地在 工程的各个文件之间进行切换。 代码编辑器是程序员编程的一个环境,几乎所有的代码都在这个地方进行输 入、运行和调试。delphi 6.0 提供的代码编辑器除了具有一般文字编辑器的功能 外,还有很多体贴的设计。例如当你在输入代码时,delphi 会自动分析你的代码, 以各种不同的颜色和状态来区别不同的代码、函数和关键字。例如,在默认的设 置中,关键字是黑体的,数字是蓝色的,而注释的段落则是斜体的,这样能方便 程序员整理和组织自己的代码。 另外值得一提的是,在 delphi 中,代码编辑器有一种很神奇的功能,称为 code insight,当输入 delphi 所能识别的对象名称并打上一个“”的时候, delphi 会自动分析这个对象所具有的属性和方法,把它直接放在“”后面的下 拉列表中去,这样你可以直接在下拉列表框中选择所需要的东西就行了。同时, 当你在写程序需要调用一个过程或方法的时候,只要输入了该方法的名称,然后 加一个“(”,delphi 就可以智能地将所需要的参数依次列出;在应用程序调试 的时候,如果将光标放在某个变量或表达式上停留一段时间,delphi 就会自动列 出表达式的值。 (6) 对象观察器 在 delphi 6.0 整个界面的最右边,有一个称为“object inspector”的窗体,它 就是对象观察器了。 一个对象观察器由两个标签页组成:properties(属性)和 event(事件), 当我们在窗体设计器中选中一个控件,它所对应的属性和事件就会列在这个对象 观察器中。 以上介绍了 delphi 的 ide 编程环境,如果要了解其性能,还需动手实际编写 程序。 2.2 sql server 简介 2.2.1 sql server 的文件系统和特点 microsoft 公司的 sql server 是一个完全的数据库管理系统。sql server 是 一种使用传统的 transact-sql 语言,基于客户机服务器,并且在两者间传送请 求和答复的关系型数据库管理系统。sql server 使用客户机服务器体系结构将 所有的工作分解为客户机任务和服务器任务,由两者分别完成。 大庆石油学院本科生毕业设计(论文) 6 在 sql server 2000 中,数据库文件可以分为三种类型:主文件、辅助文件、日 志文件,扩展名分别为:.mdf,.ndf,.ldf。每个数据库中都有一个主文件,主文 件是一个数据库的起点。辅助文件的个数没有限制,可以有一个或者多个辅助文 件,也可以没有辅助文件。这主要是看数据库本身的大小和复杂情况。 数据库的事务日志文件记录了数据库中所进行的一切改变。它在恢复数据库 时非常重要,它保存了所有当系统出错时恢复数据库时所需要的信息。缺省情况 下,事务日志记录的尺寸为数据文件的 1/4,每一个数据库必须有一个日志,而 且,事务日志必须与数据存在不同的文件中。 在 sql server2000 中,使用文件组来管理具有相似特征的一组文件。一个主 文件或者辅助文件只能属于一个文件组,日志文件是独立的,不属于任何文件组。 而一个文件组也只属于一个数据库。 在 sql server 2000 中,对数据库的一切操作,都可以通过两种方式进行: 一种是通过图形化的工具:enterprise manager,另一种是通过使用 transact-sql 语 言,直接进行对数据库的操作。前一种方式,比较直观,操作简单。后一种方式, 比较复杂,需要对 transact-sql 语言语法特别熟悉。 。 sql server2000 是 microsoft 公司于 2000 年 8 月推出的最新数据库引擎,商 务数据仓库的数据库解决方案,它具有以下几个特点: (1) 熟悉的界面 作为大型电子 sql server 2000 与 sql server 7.0 就界面而言并没有太大差别, 相信许多曾经使用过 sql server7.0 的读者见到 2000 时会有一种十分熟悉的感觉, 这方便了用户从 7.0 版本到 2000 的升级: (2) 更加强大的数据引擎 sqlserver2000 拥有增强的数据引擎,高级的管理方式,这样就大大降低了 检索的开销。此外 sql server 2000 支持 xml,http,并与 web 相结合,使其 功能更加强大。 (3) 与 windows 2000 更好的结合 (4) ms sql server 2000 相对其他数据库产品,更好地利用了 win2000 的优 势。 此外 sql server 2000 还支持高达 32 个 cpu,64gb。 2.2.2 数据库管理系统的基本概念 (1) 数据库的安全性 在计算机系统中,安全措施一般是分级设置的,在数据库系统中,对数据的 存取权限一般支持自主存取控制和强制存取控制两种机制,以对数据提供保护。 大庆石油学院本科生毕业设计(论文) 7 在自主存取控制中,用户对不同的数据对象有不同的存取权限,不同的用户对同 一对象也有不同的权限,用户还可将自己的权限转授给其他用户。而强制存取控 制中,每一个数据对象被标以一定的密级,每个用户也被授予某密级的许可证, 因此只有数据对象的密级和许可证上标明的密级相匹配时用户才能存取数据对象。 通过为不同的用户定义不同的数据视图,就可以向不同的用户展示不同的数据, 这样实现了一定程度的数据隐藏,因而能对数据提供保护。此外,可以利用数据 库系统提供的审计功能将所有用户对数据的操作自动记录下来,存入电子记录簿, 必要时可用它跟踪某些用户对数据库的操作。最后常用的安全措施还有数据加密 技术,即将数据通过一定方式变换成密文保存在数据库中,必要时再变换成原始 数据。若非法用户不知道解密的方法,即使读取了数据也不明白其含义。 (2) 数据的完整性 数据库的完整性指数据的正确性和兼容性。数据库管理系统一般提供下面三 种手段支持数据的完整性。 定义功能 向用户提供定义完整性约束条件的机制。 检查功能 检查用户的操作是否违背了完整性约束条件。 错误处理功能 在检查到用户的操作违背了完整性约束条件后,就采取相 应的应对措施。 (3) 数据库恢复 虽然数据库系统是非常可靠的,但是有时也会遭到各种破坏活动,包括自然 的和人为的原因。例如自然灾害、硬件故障、软件故障和人为破坏等。如何将数 据库恢复到一个已知的正确状态就是数据库的恢复。数据库的恢复经常涉及到下 面两个问题。 如何建立数据备份 如何利用所建立的数据备份恢复数据库 建立数据备份常用的技术是数据转储和覆盖文件,一般同时使用这两种方 法。数据转储就是管理人员定期地将数据备份到磁带或磁盘上以建立数据备份的 过程。利用数据备份可将数据库恢复到建立备份时的状态。若要将数据库恢复到 当前状态,就需要将备份后所有更新数据库的事务运行一遍,因此需要用日志记 录运行过的事务。 (4) 并发控制 在数据库系统中,通常有很多事务同时运行,同时对数据进行存取和更新, 如不加以控制,就会产生下面导致数据一致性错误的三个问题。 丢失修改 事务 a 和 事务 b 同时操作同一数据库并修改,a 先将结果写 入,接着 b 也将结果写入,这样事务 a 对数据所作的修改就会丢失。 大庆石油学院本科生毕业设计(论文) 8 不能重读 事务 a 先对数据库作了修改,而事务 b 接着对数据库作了更新 或修改,或删除或增加某一纪录,这样当事务 a 第二次读的时候,发现和第一次 读的结果不同。 脏读 事务 a 修改了某一数据,并将其写回磁盘,事务 b 读了该数据并 使用了该数据,结果因某种原因被取消,它所修改的数据回到了以前的状态,那 么事务 b 所读得数据就是不正确的,也称为读脏数据。 解决这三个问题的主要方法之加锁。锁有两种类型,即排他锁和共享锁。如 事务 a 对数据对象加上了排他锁,则该数据对象将由它独占地使用,不能被其他 事务读取、修改和加锁,直到事务 a 释放自己加的排他锁。若某事务 a 对数据 对象加上了共享锁,则它只能读这个数据对象而不能修改它,其他事务也可以在 该数据对象上加共享锁,而不能加排他锁。 在对数据对象加锁时,需要遵循一定的规则,这些规则称为加锁协议,常用 的是三级封锁协议,现介绍如下。 一级封锁协议 事务在修改数据之前必须先对其加排他锁,事务结束时释放 所加的锁,若需要读操作,则不用加锁。这样就解决了修改丢失问题,但是解决 不了不能重读和脏读。 二级封锁协议 在一级封锁协议的基础上,加上事务在读取数据之前必须先 对其加共享锁,读完后可释放共享锁。二级封锁协议可以解决读脏数据的问题, 但不能解决不能重读问题。可以形象地说明为: 事务 a 在对某数据对象修改之前,对其加上排他锁,事务 b 要读取该数据对 象,需要给其加共享锁,但因为有事务 a 所加的排他锁,这样 b 只能等待事务 a 由于某种原因被撤消,释放了所加的排他锁,而且数据对象也恢复到原来状态。 事务 b 对数据对象加上了共享锁,读得正确的数值。 三级封锁协议 在二级封锁协议的基础上,加上事务在读取数据之前必须先 对其加共享锁,直到事务结束才释放共享锁。可以形象地说明如下: 事务 a 在对某数据对象读取之前,对其加上共享锁,事务 b 想要修改该数据 对象,需要给其加排他锁,但因为有事务 a 所加的共享锁,这样 b 只能等待,不 能加上排他锁。事务 a 再读一次数据对象,所得的当然是正确的结果事务 a 完成, 释放所加的共享锁,这时事务 b 才获得使用数据对象的机会。 2.3 新一代网页开发工具asp.net 2.3.1 asp.net 概述 大庆石油学院本科生毕业设计(论文) 9 asp.net 是 microsoft 公司动态服务页面(active server page)的最新版本, 它是该公司提供的基于服务器的强大的技术,用于为万维网站点或企业的内部网 创建动态的、交互式的 html 页面。asp.net 作为 asp 与.net 相结合的产物, 是以前各版本 asp 的一大飞跃。 asp.net 作为新一代的网络开发工具,不仅与 asp 以前的版本相兼容,而且 增加了许多新的功能。总结起来有以下几个方面:3 (1) 多语言支持。asp.net 支持四种编程语言,用户可根据自己特长和实际 需要进行选择,甚至可以用这些语言的组合来编程。 (2) 兼容性。asp.net 和 asp 完全兼容,对于以前的 asp 文件,仍可在 iis 环境下运行。asp.net 文件以新的扩展名出现。即.aspx,可以清楚的区分新老文 件。 (3) 分离程序代码和网页内容。在 asp 中网页显示的 html 标记和程序代码 混在一起,给人以杂乱无章的感觉。在 asp.net 中引入了全新的 html 编程模式, 包括全新的服务器端控件,表单的事件驱动、数据绑定等,将程序代码与接口清 楚地分开。 2.3.2 asp.net 详析 asp.net 在开发效率、性能、可靠性和部署上的结合都是前所未有的,下面 详细介绍。4 (1) 开发效率 asp.net 帮你在极短的时间内开发出真正的大量的网页应用程序。 简便的编程模型 asp.net 显著简化了构建真正的大规模的网页应用程序。asp.net 服务管理使 与 html 类型相似的编程变得比经典 asp 编程所用的代码大大减少。显示数据, 用户输入的有效性验证和上传文件都惊人的容易。最重要的是,asp.net 网页可 在所有的浏览器中运行包括 netscape, opera, aol, and internet explorer。 灵活的语言选择 asp.net 使你最大效率的发挥你当前编程语言的技巧。不像经典的 asp,仅 支持解释后的 vbscript 和 javascript, asp.net 支持的.net 语言超过 25 种(包 括支持 vb.net, c#和 jscript.net 的混合而不需要其它的工具) 。在语言的 选择上,asp.net 为您提供了空前的灵活性。 强大的工具支持 您可以用任何一种文本编辑器展示 asp.net 的强大功能,即使是记事本也 行但 visual studio.net 提高了网页的基本可视化类型的开发效率。现在你可你所 大庆石油学院本科生毕业设计(论文) 10 熟悉的拖放双击技术可视化的设计网页窗体,并享受完全快速的编码。 丰富的类框架结构 应用程序的特色通常很难实现,或需要第三方控件,但现在只用几行代码引 用.net framework 就能实现。.net framework 提供了超过 4500 个类,封装了丰 富的功能,像 xml, data access, file upload, regular expressions, image generation, performance monitoring and logging, transactions, message queuing, smtp mail 等等。 (2) 改进的性能和可测量性 asp.net 让您能用相同的硬件为更多的用户服务。 编译执行 asp.net 比经典 asp 更快,而不是 asp 的单步保存模型。然而,asp.net 编译时没有明确的编译单步。asp.net 将自动检查任何变化,动态编译需要文件, 并存储将要用到的结果。这样便使执行的速度加快,大部分经典 asp 移植到 asp.net 上速度提高 3-5 倍。 高速输出缓存 asp.net 输出缓存可显著改善程序的性能和可测量性。 当输出缓存在一个页中可用时,asp.net 只执行这个页一次,并把结果存储 在内存的同时发送给用户。当另一个用户需要同样的网页时,asp.net 服务器经 缓存将内存中结果取来而不重新执行网页输出缓存是可配置的,可用于缓存个别 区或整个页,由于避免了每个请求都访问数据库,输出缓存大大改善了数据驱动 页的性能。 (3) 增强的可靠性 asp.net 确保你的应用程序对用户总是可用的。 磁盘漏洞、死锁和冲突保护 asp.net 自动检测错误并从磁盘漏洞或死锁中恢复出来,使应用程序对用户 都是可用的。假设你的应用程序中有一个小的磁盘漏洞,并且一周后这个漏洞成 为你虚拟内存的很重要的一部分,asp.net 会检查到这种情况,自动启动另一个 备份的 asp.net 工作进程 ,并把所有的新请求定向到新进程。一旦老进程完成 了所有的悬挂请求的处理,它就被释放掉,同时内存漏洞也被释放掉。整个过程 是自动地,不需要管理员的干预和任何服务的中断,但 asp.net 已从错误中恢 复出来。 (4) 布局的简单性5 asp.net 把你从布局服务器程序的痛苦中解脱出来。 “非接触”应用程序布局 大庆石油学院本科生毕业设计(论文) 11 asp.net 显著简化了应用程序的安装,用 asp.net,你可像开发 html 页 一样对整个程序布局:只需把程序拷贝到服务器,不需要运行 regsvr32 注册任何 组件,并且环境配置存储在应用程序的一个 xml 文件中。 动态更新正在运行的程序 asp.net 可以在不重新启动网页服务器的情况下更新编译的组件,过去经典 com 组件,开发者每次更新布局都必须重新启动网页服务器,用 asp.net,你 只简单把组件从已存在的 dll(动态链接库)中拷贝过来asp.net 将自动 检测变化并开始使用新的代码。 方便的路径移植 为了开始使用 asp.net 你不需要移植已经存在的程序,asp.net 运行在 iis 上与经典 asp 并置在 windows 2000 和 windows xp 平台上,已经存在的 asp 程 序可由 asp.dll 继续处理,而新的 asp.net 页由新的 asp.net 引擎处理。你 可以移动整个应用程序,也可移动单个页,asp.net 甚至允许你继续用已经存在 的 com 商业组件类。 (5) 新的应用程序模型。 xml 网页服务 xml 网页服务允许应用程序通过 internet 交换和共享数据,而无需考虑操作 系统和编程语言,asp.net 使 xml 网页服务更加简单明了。任何类一调用 soap client 用几行代码就能将其转化为 xml 网页服务。同时,asp.net 使你 的应用程序很容易调用 xml 网页服务,不需要任何网络,xml 或 soap 知识。 数据库访问 asp.net 提供了 ado 和 ole 两种技术,其访问数据库的方式已经接近一般 的面向对象编程语言,使用起来非常容易,而且其功能也相当完备。 大庆石油学院本科生毕业设计(论文) 12 第 3 章 需求分析 3.1 构建新闻自动提取系统的必要性和功能 随着计算机网络技术的成熟和计算机价格的变化,一场信息领域的划时代革 命internet 出现了。现在 internet 提供的服务应有尽有,新闻、影视、图形、 图像,不胜枚举。但出于网络安全和实际情况的考虑,一个公司或企业的内部仍 有很多人不能直接登录到 internet,但又应该让他们享受 internet 的服务。这样网 络服务的自动提取系统就应运而生了,新闻自动提取系统不过是小试牛刀而已。 系统需完成的功能: (1) internet 上将各大商业网络服务网站上的新闻标题和新闻内容完全由程序 自动提取出来,不需要人工干预; (2) 将新闻分类后放入数据库中; (3) 以网页的形式将新闻发布出来,供局域网中的用户浏览,并可实现简单的 按关键字查询的功能; (4) 应该对提取的新闻在一段时间内刷新,同时更新数据。 3.2 新闻自动提取的可行性 在介绍可行性之前,先介绍几个概念: 一级网页:也叫大类首页,是从网站的首页中各类直接链接到的网页,教 育类首页地址为:,经济类首页地址为: . 多级网页:从一级网页直接链接到的网页为二级网页,依次可定义三级网页、 四级网页。大于等于三级的网页,称为多级网页。二级新闻:如果新闻的内容能 从二级网页上找到,这样的新闻称为二级新闻。 新闻的类标志串:它用来标志新闻的类别,也是能判断网页是否是二级网页 的一个字符串。教育类新闻的标志串是: () 在本系统中只提取二级新闻,所用技术为二级网页提取技术。 (1) 通过对五类上百个新闻网页进行统计表明:搜狐上新闻内容网页的布局格 式同类的极其相近,而各类间区别也不大。 大庆石油学院本科生毕业设计(论文) 13 (2) 对一级网页的分析表明,该页中的新闻都是通过超链接链接到对应二类新 闻页的。而超联接的提取可通过反复截取的方法获得。 (3) 每类新闻在其新闻网页(二级网页)中都含有相应的标志(一般在新闻标 题前,也是新闻开始的标志) ,而且二级网页中新闻内容的开始和结束也有标志, 教育类的开始标志为,结束标志为 (有时 p 是 大写的) 。 新闻提取的基本思想和过程是:先定位到各类新闻的主页,再获得其对应 的文本串,取出其中的超链接,再把超链接中的地址取出来,如果该地址对应网 页含有类新闻标志,则提取新闻内容和标题。新闻内容和标题的提取方法:新闻 内容和标题在二级网页对应的文本中都有相应的起始标志,可从开始截取到结尾 的部分即得之。由于 delphi 中提供了对字符串的操作函数,所以整个新闻提取的 过程从技术上是完全可行的。整个提取在 timer 控件中完成,就实现了自动提取 的功能。利用 asp.net 的 ado 数据库访问技术,就可将数据库中的新闻发布出 来。 系统的数据流图如图 3.1 所示. sql server 新闻库 internet 网页 分类后 的新闻 文本 文件 数据库 文件 新闻 网页 1.1 delphi 网 络 接 口 1.2 文 本 分 析 模 块 1.3 asp.net 模块 用户 d1 internet 图 3.1 新闻自动提取系统数据流图 大庆石油学院本科生毕业设计(论文) 14 第 4 章 系统总体设计 从功能和所用的开发工具可将整个系统分为三个部分:sql server 部分、 delphi 部分 、asp.net 部分。而 delphi 部分又可以分成网络访问及新闻提取、数 据库管理两个子模块。 (1) sql server 部分 这部分主要包括数据库设计: 由于各类新闻除了类别外,主要由新闻标题和新闻内容组成,故各类新闻均 采用下表结构进行数据存储。整个建库、建表通过企业管理器完成,同时对数据 库建立登录,然后再 odbc(open database connection)中为数据库建立别名,以 便在程序中访问。数据库中存储新闻表的结构如表 4-1 所示. 表 4-1 数据库中表的结构 字段名no(编号)title(标题)content(内容)station(网站) 类型decimalvarchar(100)varchar(8000)char(50) (2) delphi 部分 delphi 中网络访问及新闻提取子模块 网络访问部分: 通过对控件栏中 fastnet 页中的 nmhttp 控件编程,用字符串变量返回网页 对应的文本串。 新闻提取部分 这部分需要对网页进行全面细致的分析,准确提取出网页中的超链接,然后 从超链接串中提取出地址,在判断该页是否是二级网页,是则提取新闻标题和内 容,否则进入下一次提取,直到文本中无超链接为止。 delphi 中数据库管理子模块 建立数据库别名,并对 odbc 进行配置,以便在 delphi 和 asp.net 中访问 数据库; 检查记录是否存在,如果不存在则插入之,否则放弃操作; 能对表进行清空操作,以便刷新数据库中的数据; 能对表中记录进行修改和删除; 大庆石油学院本科生毕业设计(论文) 15 在刷新数据库时,将数据库中的数据无冗余存储于信息库中。 (3) asp.net 部分 该程序作为服务器端程序,将数据库中的数据以网页的形式发布出来,共 用户对各类信息浏览; 用户可根据自己的兴趣爱好,动态的选择想要浏览的新闻,也就是简单的 搜索引擎功能; 方便的网页链接,用户在浏览一类新闻时可直接链接到其它类新闻。 这部分由登录、主页和五个链接页组成,五个链接页与主页之间均由超链接 联系。五个链接页的组成大体相同,每个页均能实现添加,删除,排序,查询的 功能,而新闻内容的显示用 datagrid 控件绑定数据库实现。 a 的总体布局如图 4.1 所示. 系统的功能模块图如图 4.2 所示. 系统实现流程为:先建立数据库,再通过 delphi 访问 internet 提取新闻,存 储于数据库,再由 asp.net 将数据库中信息发布出来。 图 4.1 网页基本布局 大庆石油学院本科生毕业设计(论文) 16 基于 internet 的新闻自动提取系统 delphi 的 internet 访问及新闻 提取模块 sql server 数据库 管 理 系 统 delphi 数据库 管 理 模 块 asp.net 数据库 访 问 模 块 网 页 获 取 文 本 分 析 新 闻 提 取 建 数 据 库 建 数 据 表 表 清 空 删 除 数 据 新 闻 浏 览 新 闻 搜 索 图 4.2 新闻自动提取系统模块图 插 入 数 据 大庆石油学院本科生毕业设计(论文) 17 第 5 章 详细设计 5.1 技术难点与解决方案 如前所述,整个系统由 sql server 部分、delphi 部分 、asp.net 部分组成, 在各部分中遇到的技术问题及实现方案将分述之。由于各大网站的网页组织结构 相近,故以提取搜狐上的新闻为例阐明。 5.1.1 sql server 中的技术问题及实现方案 (1) 表结构的选取 构建表的结构有两种方法:一表法和多表法。这两种方法均能满足系统对数 据库的操作要求,但结构略有差异: 一表结构:所有类新闻放在一个表中。 字段设置:类别,类内标号,新闻标题,新闻内容,来源网站。 多表结构:每类新闻用一个表存储。 本系统有以下五类:教育类,体育类,经济类,娱乐类,出国类。每类的字 段设置相同,如下所示:标号,新闻标题,新闻内容,来源网站。 本系统采用多表结构,因为多表结构较一表结构可减少数据冗余。 (2) 建立数据库连接 在连接时有四种方法: 用 bde 连接 用 odbc 连接 用 ado 连接 用 ole 连接 本系统首先用 odbc 建立连结,在 delphi 中用 bde 访问数据库,在 asp.net 中用 ado 连接访问数据库; (3) 数据库中的冗余控制 在记录插入前检查其是否存在,不存在则插入。 5.1.2 delphi 中的技术问题及实现方案 (1) 技术难点 1:如何对提取出的新闻进行分类. 解决方案:搜狐网本身已将新闻分成教育、出国、健康、财经、体育等 类,在提取时直接定位到各类的主页中,然后在各页中提取出新闻自然存入 相应的表中。 大庆石油学院本科生毕业设计(论文) 18 (2) 技术难点 2:如何用 delphi 访问网页的内容. 解决方案:用 delphi6 控件栏的 fastnet 页中的 nmhttp 控件,经编程可返 回整个网页的基于 html 的文本串。 (3) 技术难点 3:如何从文本串中提取出新闻标题. 解决方案:共三种。 直接从各大类主页中获取; 从二级网页新闻的标题获得; 从二级网页的窗体的标题获得。 注:体育、娱乐、出国、经济类新闻均可通过以上三种方式获取新闻标题, 但教育类新闻只能通过前两种途径获得标题,因为教育类新闻窗体的标题为 “sohu 教育频道” 。 (4) 技术难点 4:如何从各大类主页开始提取出新闻内容。(以教育类为例) 解决方案:大致分四步: 从教育类主页中的超链接中提取出地址串,并对地址串进行标准化; 对 nmhttp 控件进行编程,获得地址串所对应的网页文本串; 判断该网页中是否含有教育类新闻的标志串 (),如果含有,则从该二级页中提取出 新闻内容,否则提取下一个超链接,直到教育类网页文本串的结尾; 将新闻内容中的换行符、注释符及其它多余字符去掉。 5.1.3 asp.net 技术问题 (1) 技术难点 1:如何将数据库绑定到 datagrid 控件. 解决方案:首先 sqlconnection 建立数据库连结,再在 page_load 事件中用 sqlcommand 添加 sql 语句。最后打开连接,对 datagrid 控件进行数据绑定。 (2) 技术难点 2:记录的添加、删除和排序. 解决方案:先建立数据库连接,然后在对应的按钮的单击事件中设置 sqlcommand 的 sql 语句,有参变量的对参变量赋值,再对 datagrid 控件进行数 据绑定。 5.2 delphi 新闻提取 5.2.1 整体布局和大体流程 提取部分总体由一个工程组成,这个工程由五个窗体组成,每个窗体对应一 类新闻的提取。 大庆石油学院本科生毕业设计(论文) 19 由于教育类新闻标题与其它类不同,但新闻内容的提取却相同,故只将标题 的提取分别实现之。整个提取过程在 timer 控件内完成。窗体布局如图 5.1 所示, 而新闻提取的流程图如图 5.2 所示。 窗体布局诠释如下: 标号,标题,内容和网站分别用来显示提取到新闻的各个属性,查询按钮可 实现在 delphi 中查询新闻内容,dbgrid 控件用来显示所有的新闻。也可在标号, 标题,内容和网站手动输入内容,按添加按钮将其写入数据库中。 图 5.1 窗体布局 大庆石油学院本科生毕业设计(论文) 20 注:rest 串用来实现循环时对文本串赋初值,它的值为串 s 提取出超链接后 的剩余串。流程图中的多数功能的详细实现在下面叙述。 y n y n y n 开始 定义全局变量并初始化之 求出上面超链接往后的剩余串 rest 超链接是否为图片 获取地址串定位网页对应文本串 str 提取新闻内容和标题 结束 s:=rest 从文本串中提取超链接串 提取地址串并标准化 该页是二级页 串 s 有超链接 图 5.2 提取新闻的整个流程图 大庆石油学院本科生毕业设计(论文) 21 5.2.2 新闻提取子模块的实现 为了清楚的解释各模块的程序,先说明其中最重要的几个函数: pos(substring:string;s:string):integer; 说明:函数返回子串 substring 在主串 s 中的位置,如果主串中不包含子串, 返回 0 copy(s:string;m:integer;n:integer):string; 说明:函数返回在串 s 中截取从 m 开始的 n 个字符组成的串。如果截取的长 度比最大可截取长度大,则从开始位置截取到串结尾。 (1) 从一级网页的文本串中截取超链接 超链接有两种形式:分别以和作为开始和结束标志。程序 中通过判断和的位置来定位超链接的开始。 下面是定位超链接开始的代码,可参照图 5.3 理解。 l0:=pos(h0,s); /定位到为起始标志 hstart:=l1 else hstart:=l0; /找到超连接的开始 /再截取从下面是两个例子: 美指使 美指使 从超链接提取的粗略地址有几种形式: “http:/www.“(此种形式为绝对地址) http:/www. “/“ /(此种形式为相对地址) http:/www. 其中第 5 种定为标准形式,也就是能直接写在 url(统一资源定位) ,地址的 标准化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论