1、 本 科 毕 业 论 文 基于远程调用数据的 新闻采集系统 News Gathering System Based On Long-distance Data Calling 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师 : 职称: 职称: 年 月摘 要 随着时代的发展,电脑的普及率日益提高,人们获取新闻的途径由原来的电视,报纸逐渐变为由网络获取新闻。近年来,新闻网站如雨后春笋般发展了起来,通过电脑浏览网页新闻已经成为一种潮流 。 作为毕业设计课题,我 设计开发了一 种 能 将目标新闻网站的信息采集,对广告进行过滤,将新闻存储到本地数据库 的 新闻采
2、集 系统 。该 系统 基于 .NET 平台,通过“新闻采集”技术,自动获取其他网站的全部页面内容,经程序的适当加工处理后,输出给浏览者。这种技术,可以替换 LOGO、网站标题、署名、广告等信息,对原始信息进行分析处理,应用于一个新的网站 。 本文从 .NET 平台特性入手,重点论述 基于远程调用数据的新闻采集系统 的设计及实现方法,并展示软件的运行及测试结果,然后对本课题开发的 系统 做了总结。 关键词 : .NET 平台 ; 新闻采集;远程调用 数据 ; Abstract With the development of the times, more and more people own
3、computers, the way people access news from television, newspapers has changed. People also get news from the Internet nowadays. In recent years, news websites develop like mushrooms, and browse websites via computers has become more and more popular. As the graduation project, I have designed and de
4、veloped a Web site to target news information collection, filtering of ads will be news to the local database storage system. The system is based on. NET platform, through the “news gathering“ technology, automatic access to all the other sites page content, these data, after appropriate processing,
5、 the output to the viewer. This technology can replace the LOGO, website title, signed, advertising and other information, the original analysis of information processing, applied to a new site. This article starts from the characteristics of the. NET platform, with emphasis on news gathering system
6、 based on long-distance data calling and how to design and implementation of the method, and demonstrate the operation of the software and test results, and then make a summary of this system. Key Words: . NET Platform; News Gathering; Long-distance Data Calling; 目 录 第一章 引言 . 1 第二章 系统相关技术概述 . 3 2.1
7、.NET 平台简介 . 3 2.2 .NET 平台中的用户界面设计 . 6 2.2.1 CSS 样式表 . 6 2.2.2 CSS 应用 . 6 2.3 正则表达式 . 8 2.4 线程 . 8 第三章 系统总体设计 .10 3.1 系统概述及功能 .10 3.1.1 开发背景 .10 3.1.2 总体目标 .10 3.2 总体设计 . 11 3.2.1 设计原则 . 11 3.2.2 设计规范 .12 3.2.3 数据库设计 .15 第四章 系统详细设计 .17 4.1 项目结构 .17 4.1.1 时序图 .17 4.1.2 流程图 .17 4.2 用户界面模块设计 .18 4.3 系统
8、实现步骤 .18 4.3.1 远程获取页面 Html 源文本 .19 4.3.2 获取有效的内容文本 .20 4.3.3 入库处理 .21 第五章 系统测试及运行结果 .25 5.1 功能测试 .25 5.2 性能测试 .26 5.3 运行结果 .27 第六章 总结 .29 致谢 .30 参考文献 .31 Content Chapter 1 Introduction . 1 Chapter 2 System related technologies outline . 3 2.1 .Introduction to .Net platform . 3 2.2 Interface design .
9、 6 2.2.1 Cascading Stylesheet . 6 2.2.2 The application of CSS . 6 2.3 Regular Expressions . 8 2.4 Thread . 8 Chapter 3 System overall design .10 3.1 System profiler and function .10 3.1.1 Development background .10 3.1.2 Overall objective .10 3.2 Overall design. 11 3.2.1 Design principles . 11 3.2.
10、2 Design code .12 3.2.3 Database design.15 Chapter 4 System detial design .17 4.1 The structure of the project .17 4.1.1 Timing diagram .17 4.1.2 Flow chart .17 4.2 Interface module design .18 4.3 Procedures to achieve these.18 4.3.1 Access to the source text .19 4.3.2 Access to the effective conten
11、ts .20 4.3.3 Storage to the database .21 Chapter 5 System testing and running result .25 5.1 Functional test .25 5.2 Performance test .26 5.3 Running results .27 Chapter 6 Summarize .29 Acknowledgement.30 References.31 基于远程调用数据的新闻采集系统 1 第一章 引言 随着 Internet 的普及与发展 ,网络已经深入到了人们生活的各个方面 ,成为经济、文 化、社会、教育以及娱
12、乐等几乎所有领域的重要组成部分。同时 ,网络也以惊人的速度在全球蔓延 ,据统计 ,全球目前网页数已经超过 200 亿张 ,并且每天还以数百万张的速度在增长 1,其中 出现了 许多专业的新闻网站 (如 : SINA,搜狐 等 ),使得拥有电脑的人们可以随时 地 了解最新的新闻,人们可以在娱乐中了解最新的新闻。网页新闻已经成功地融入到人们的生活 。 网络技术近几年来得到了突飞猛进的发展, 给 新闻 信息 的更新 提供了极大便利。 近几年来,在网络中新闻 功能正在变得越来越重要。 提供 新闻 信息是各个 新闻 网站最主要的功能,而只有最大限度地获 取信息,才能够为用户提供最有价值的信息,因此 新闻
13、网站的基本运作模式应该是 :获取信息 加工、筛选、分类、聚合信息 输出信息 。 网站之间互通有无、共享信息,是解决网站信息来源的主要方法之一。一般 的 实现 方法是 通过人工方式有选择地转载其他网站的文章、图片等,或者建立超级链接指向其他网站的相关信息 ,但是这样的方法需要大量的人力资源维护网站,更新网站 。许多小型网站无法支持如此大的输出,将有可能减缓网页新闻的发展速度。 另外,随着网页数量的日益增多 ,Web 在为用户提供丰富信息和知识来源的同时 ,由于多种原因 ,例如为了增强用 户交互性而加入的Script,为了便于用户浏览而加入的导航链接 ,出于商业因素所加入的广告链接等 ,给用户带来
14、了“信息过载” 2。 针对上述缺点,我的毕业设计在 .NET 平台上设计和实现了一 个简单的新闻采集系统,主要通过 自动获取其 他网站的全部页面内容,经程序的适当加工处理后,输出给浏览者。 这种技术,可以替换 LOGO、网站标题、署名、广告等信息, 对 原始信息 进行分析处理 , 应用于 一个新的网站。 应用“新闻采集”技术与传统的通过人工方式相比的优点: 无须维护网站,因为程序中的数 据来自其他网站,它将随着该网 站的更新而更新, 可以节省服务器资源 。 基于远程调用数据的新闻采集系统 2 本毕业设计课题来源 于 软件学院拟定毕业设计课题 ,主要目标是设计开发一种 能 以 sina 新闻版面
15、为信息读取源,将读取的信息 经过一定的处理和灵活应用 ,存入本地数据库, 开发成成体系网站内容采集系统 。该系统基于 .NET 平台,通过网络与 sina 新闻 网站 进行交互, 远程获取页面的全部 Html 源文本 , 通过过滤处理 ,分析有效内容文本 .(通常用正则表达式来截取有效数据 ), 将格式有效的数据 ,根据自己的数据库结构分标题 ,内容 .一些其他属性保存到自己的本地数据库 。本软件在开发实现过程中采用模块化、结构化的软件设 计思想,提高系 统的可移植性和可维护性,在实现技术上 ,采用 人性化的用户界面 ( CSS 样式表) , 灵活的数据处理, 实时准确 读取信息 。 基于远程
16、调用数据的新闻采集系统 3 第二章 系统相关技术概述 2.1 .NET 平台简介 .NET 平台 是 C#,VB.net 等程序运行的平台 ,它为这些语言提供了丰富的类库(称之为基类库 )。 图 2.1 是一张描述 .NET 平台的整体结构 : 图 2.1 .NET 平台的整体结构 这个图就是 .NET 平台结构图 ,从这个图上可以看到 ,.NET Framework 是在Microsoft.NET 平台上开发的基 础 ,ASP.NET、 Windows Forms 和 VS.NET 都不过是 .NET 平台开发的一部分,他的用于 .NET 应用程序的开发及展示。 .NET 平台的核心技术为
17、: 公共语言运行库 ( CLR: Common Language Runtime)、基类库 (BCL: Base Class Library)、 .NET 语言及 Visual Studio.NET3。 从这个图上可以看出, .NET Framework 是架构在 Windows 平台上的一个虚拟的运行平台,你可以将最下层 Windows 换做其他的操作系统,例 如说 Linux,一样可以实现使用符合 CLS(Common Language Specification,通用语言规范 )的 .NET 语言 (VB.NET、 C#、 JScript.NET 等 )来创建 ASP.NET 或 Win
18、dows Form( 也叫 Linux Forms)应用程序的功能。 C#是一种可以跨平台的语言。 C#编写的程序代基于远程调用数据的新闻采集系统 4 码是 通过 C#编译器编译为一种特殊的字节代码 作为 中间语言,运行时再经由特定的编译器( JIT 编译器 )编译为机器代码,以供操作系统执行 。 不仅是 C#语言,所有 .NET 语言 (包括常用的几十种现代的 编码语言 )都可以编写面向 CLR 的程序代码,这种代码在 .NET 中被称为托管代码 (Managed Code),所有的 Managed Code 都直接运行在 CLR 上,具有与平台无关的特性 3。 解释性的语言很安全,并且可以
19、通过他的运行平台为其赋予更多的功能 2,例如自动内存管理,异常处理等,事实上, C#语言的许多特点都是由 CLR 提供的,图 2.2 所示的 CLR 结构图说明了这一点 。 图 2.2 CLR 结构图 公共语言运行库 (Common Language Runtime, CLR)最早被称为下一代 Windows服务运行时 (NGWS Runtime).它是直接建立在操作系统上的一个虚拟环境,主要的任务是管理代码的运行。 CLR 现在支持几十种现代的编程语言为它编写代码,然后以一种中间语言 (Intermediate Language, IL)代码的形成被执行。并且, CLR还提供了许多功能以简化
20、代码的开发和应用配置,同时也改善了应用程序的可靠基于远程调用数据的新闻采集系统 5 性。如果某种语言的编译器是以运行 库 为目标的,那么利用该语言开发生成的代码在 .NET 中被称为托管代码,因为这样的代码是直接运行在 CLR 上的,所以具有与平台无关的特点。 从图 2.2 可以看 到, C#所具有的许多特点都是由 CLR 提供的,如类型安全 (Type Checker)、垃圾回收( Garbage Collector)、异常处理 (Exception Manager)等,具体的说, .NET 上的 CLR 为开发者提供如下的服务: 平台无关: CLR 实际上是提供了一项使用了虚拟机技术的产品
21、,他构架在操作系统之上,并不要求程序的运行平台是 Windows 系统,只要是能够支持它的运行库的系统,都可以在上面运行 .NET 应用。所以,一个完全由托管代码组成的应用程序,只要编译一次,就可以在任何支持 .NET 的平台上运 行。 跨语言集成: CLR 语序开发这以任何语言进行开发,用这些语言开发的代码,可以在 CLR 环境下紧密无缝的进行交叉调用,例如,可以用 VB 声明一个基类对象,然后在 C#代码中直接创建 基类的派生类。 自动内存管理: CLR 提供了拉架收集机制,可以自动管理内存。当对象或变量的生命周期结速后, CLR 会自动释放他们所占用的内存。 自描述组件:自描述组件是指将
22、所有数据和代码都放在一个文件中的执行文件。自描诉组件可以大大简化系统的开发和配置,并且改进系统的可靠性。 在 .NET 平台结构图中, CLR 的上面是 .NET 的 基类库,这组基类库包括从基本输入输出到数据访问等各方面,提供了一个统一的面向对象的,层次化的,可扩展的编程接口。从 .NET 平台结构图中也可以看到,基类库可以被各种语言调用和扩展 ,也就是说不管是 C#, VB.NET 还是 VC+.NET,都可以自由的调用, .NET 的类库。 公共语言架构 (Common Language Infrastructure, CLI).CLI 是 CLR 的一个子集,也就是 .NET 中 最终对编译成 MSIL 代码的应用程序的运行环境进行管理的那一部分。在 CLR 结构图中 CLI 位于下半部分,主 要包括类加载器( Class Loader)、实时编译器( IL To Native Compilers)和一个运行时环境的垃圾收集及将使用任何语言编写的代码,通过其特定的编译器转换为 MSIL 代码之后运行其上,甚至还可以自己写 MSIL 在 CLI 上运行。