网上证券金融信息收集系统设计

时间:2022-06-07 11:40:44

网上证券金融信息收集系统设计

1引言

随着因特网的迅速发展和全球信息化的热潮,证券金融信息服务业面临一个发展的大好时机。信息资源是信息服务的物质基础,直接影响信息服务的质量和效率,因而信息服务业竞争的焦点必然集中在信息资源的竞争上。因特网是目前世界上最大的信息资源网,而网上证券金融信息则更是浩如烟海,变化频繁。面对这种情况,仅靠一般网络信息组织、查询技术,无法满足社会各界对证券金融信息的巨大需求。因此,对信息服务业来说,探索有效的信息自动处理技术就成为一个亟待解决的问题。而网上信息采集技术是针对网上信息种类多、分布广、检索方法各异,地址变动大等情况,将网上信息进行选择下载、重新组织整理,然后再以主题、分类的形式指引用户查找。这一技术的应用,不仅方便了用户查询,提高了信息服务质量,而且节省了信息服务机构的投入,降低了服务成本,这无疑会显著提高信息服务机构的竞争实力。在这一思想指导下,我们研究开发了网上证券金融信息采集系统,该系统主要功能包括:

(1)系统管理员通过管理模块选择需采集信息的网站和栏目,设定信息下载时间,并可实时监控整个下载过程;

(2)系统每天按设定时间自动下载所选各个网站和栏目中的专业文章,保存到数据库中以备查询;

(3)有简单的Web查询功能,并易于进一步扩展。

2系统分析

本系统涉及网络通讯、Web页面、脚本语言、数据库服务器等多方面内容,是一个综合性较强的系统。按照要求,本系统重点考虑四个方面:

2.1数据存储系统的分析

系统要求测试时采用单机数据库,但最终程序要能运行在数据库服务器上,因此需要考虑数据容量问题和平滑移植问题(即单机数据库与某数据库服务器具有相同或相近的数据类型和操作方式)。

2.2下载程序的分析

这是本系统的重点,该程序需要解决的关键问题是网站文章定位、下载与存储以及下载过程的监控。

(1)文章的定位。由于互联网网站的更新速度很快,且规律性差,因此无法对所有专业文章归纳统一的自动定位算法,需要人工干预的辅助手段来解决这一问题。

(2)文章内容的下载。由于各个站点的处理方式不同,对于专业文章有的是以人工方式制作成HTML页面放到站点上,而更多的是采用由程序自动更新的方式。在后一种方式中,网站上指向专业文章的链接更可能是指向用来提取该文章的脚本或CGI程序,而不是文章本身。本系统程序应该注意到这种情况,我们最终需要的是包含专业文章的页面,而不是网站上用来提取该文章的脚本程序。

(3)文章页面的存储。系统要求将下载内容存储到数据库中,但由于互联网上信息形式的多样性,我们需要假定本系统程序下载的内容不一定都是HTML文件,有可能出现图像、声音等其它二进制内容,因此,需要考虑这些内容的存储方式。

(4)监控下载过程。程序需要实时跟踪下载状态,以便将下载的过程以及成功与否显示给系统管理员。因此我们要捕捉程序下载过程中触发的每个事件。

2.3Web脚本的分析

这是本系统的附加功能,其用途是检索查询已下载的文章,该脚本程序操作数据的方式应该尽量与服务器端程序相同或相近,避免由于对数据操作方式的不同而产生程序上的误差,尤其在操作二进制数据时更是如此。

2.4管理模块操作界面的分析

(1)需要一个时间设置窗口,管理员可以方便地设定系统的启动日期及时间。一次下载成功后,日期自动加1,时间不变,每天按此时间进行下载。

(2)需要一个网站及栏目管理窗口,管理员可以添加、修改、删除网站的名称、地址及其栏目名称地址。在添加、修改下载网站栏目时,管理员可将其与本系统的栏目相对应,实现对下载文章的分类管理,便于今后前端用户的检索查询。

(3)需要一个监视窗口,在下载过程式中管理员可了解目前正在下载的是哪个网站中的哪个栏目,其IP是多少,是否下载成功等。如下载中出现问题,由此窗口可发现出现问题的地方,便于管理员采取相应措施,保证下载的正常进行。

(4)需要一个设置窗口。管理员本机如果是通过服务器进入互联网,则可直接在此窗口中写入服务器的地址即可。

(5)需要一个运行状态提示窗口,提示下载服务是否正在运行。

3系统总体设计

根据系统分析,我们对系统从以下几个方面进行设计。

3.1系统环境的设计

(1)系统的运行环境。根据后台数据库系统的不同,本系统中的下载程序可能运行在服务器上,也可能运行在客户端机器上。综合考虑后,我们认为当前流行的Windows平台是最佳选择。原因是它的服务器产品和客户端产品在操作方式、程序运行方式上都极其相近,具有最大的兼容性和易操作性,使程序为具备兼容性而付出的代价降到最低。

(2)后台数据库系统的选择。能够运行在Windows产品上的数据库很多,但我们最终选择了MSSQLServer7和Access2000。因为它们与Windows产品有着高度的集成性,而且提供较多的关系数据库特性,同时Access和SQLServer在数据类型等方面有着高度的一致性,并提供了一致的应用程序接口(ADO对象)。Access2000还提供了平滑移植到SQLServer7的向导,符合系统要求,因此我们认为它们是该系统的最佳选择。

3.2系统开发语言的选择

(1)下载程序开发语言的定位。由于本程序涉及到多方面内容,既有底层的网络传输协议应用,又有较高级的数据库操作,同时还要有对事件操作的完善支持,这就要求我们选择一种面向对象的综合性开发语言,例如VB、Delphi、C++等。由系统分析可知,在程序中我们要对二进制数据进行操作,所以我们还需要考虑该语言对二进制流的支持。综合考虑该语言的全面性、代码简洁程度和开发环境的易操作性,我们最终选择了Inprise公司出品的Delphi5.0,因为它提供了面向对象程序设计方法,对很多复杂的操作进行了对象封装;同时它也提供了异常处理机制,对程序出现的各种定制和意外事件都能够很好的进行处理。

(2)Web脚本语言的选择。由于在Windows平台上,ASP是免费提供的脚本系统,而且支持ADO对SQL数据库的操作,所以它也就成为我们当然的选择。

3.3文章定位方法的设计

经过大量的观察发现,虽然网站文章的变更有很大的随机性,但是大多数网站都对这些文章进行了归类,同类文章被归到同一个栏目中,而栏目的标题和网址是相对固定的,可由人工方式获得。这样我们就可设计出下载程序的基本处理思路:给下载程序输入网站的地址和该网站栏目的地址,程序由栏目地址可得到该栏目的页面。我们可通过对栏目页面HTML源代码的分析,从中获取专业文章的链接地址,形成地址表。根据地址表中的地址进行文章定位下载,即可获得所需的专业文章。

3.4数据下载方式的设计

对于数据的下载,我们决定采用与WebBrowser相同的方式来进行,即通过HTTP协议下载数据流,这样至少可以保证以下两点:

(1)不论链接地址指向的是什么CGI程序,我们获得的都是CGI程序的运行结果,也就是保证本系统程序获得的数据就是人们在浏览器中看到的内容。

(2)通过HTTP协议下载数据的同时,我们可根据发送到客户端的HTTP头来判定我们下载数据的类型。例如:如果下载的是HTML页面,HTTP头部会包含Content-type:text/html字符串,如果下载的是GIF图像,则HTTP头部则包含Content-type:image/gif内容。我们可根据头部得出的类型来采取不同的处理方式。

(3)在Delphi中,第三方组件NMHttp提供了对HTTP协议较好的封装。通过该组件,我们可避开繁琐的WinSocketAPI,简化程序,将精力集中在主要问题上。同时,该组件给出了触发各种底层通信事件的机会,这些事件可以达到我们跟踪下载过程的目的。

3.5数据存储结构的设计

综合以上的分析,我们可以设计出数据的存储方案。归纳需要存储的数据,主要包括以下内容:网站的地址、每个网站中栏目的地址、每次下载的栏目页面、栏目页面中所包含的文章链接地址和内容。根据以上内容我们可设计出4个基本表:网站地址表(tbSite):存储网站的名称和地址;栏目地址表(tbLanMu):存储每个网站中栏目的地址和标题;栏目页面表(tbLmPage):存储每次下载的栏目页面和下载时间;文章链接表(tbHyperlink):存储栏目内各个链接的地址和内容(该表中需要保存二进制数据)以及下载时间。

3.6数据操作方式的设计

Delphi支持多种数据连接和操作方式,如BDE、ADO等,针对该系统,我们决定采用通过ADO连接数据库。由于ADO具有相当可靠的稳定性、开放性和可扩展性,在以后移植到SQLServer的过程中,基本可以不变更程序代码,而只需更改ADO驱动的数据连接字符串即可。

4系统算法设计

系统进行网上信息采集的总体算法如图1所示:下面,我们将程序中几个主要功能模块和辅助模块的处理过程以流程图的形式做说明。

4.1启动定时器,按设定时间启动下载过程

为了保证不会出现交叉下载或重复下载的情况,需要设置下载条件,包括:当前日期、上次下载日期、下载时间以及现在是否正在进行下载的标志变量。在程序中,计时器每20秒运行一次,该模块流程如图2:

4.2主下载模块

4.3提取栏目中的链接形成字符串列表

(1)根据HTML标记在栏目页面代码中搜索字符串,形成字符串列表,算法如图4:

(2)整理出纯链接:在本系统中,上一过程提取的标记为<ahref/title=“链接地址”>…</a>,标记中是形如href=…或href=“…”或title=…的字符串,子程序DefrageLinkList根据字符串列表进行循环,将每个以href开头字符串中的“href=”去掉,如果有多余的引号也去掉,从中提取出“链接地址”。该子程序算法简单,请见程序源代码。

(3)将整理出的“链接地址”再次进行整理,形成标准形式:…”说明:由于html语言有其开放性的一面,所以在组合成标准的链接形式时,存在一定困难。如上所示如果链接地址是以“/……”开始,则大部分是与站点地址组合,但与站点中某些路径组合的情况也是会出现的。这样,经过以上三步处理便形成了标准链接地址列表,可以正常应用于下载过程。

4.4获取下载内容的类型

内容类型是通过检索HTTP头信息得到的,在下载页面的同时,我们也下载了HTTP头字符串列表。在头字符串列表中,有形如Content-type:text/html的表项,通过以下操作可提取类型标识:取出含“Content-type”字符串的行,截取冒号右边的内容并压缩空格,得到的结果就是所需要的类型标识。text/html代表下载的是HTML页面,image/gif等代表下载的是图片或程序运行结果。

4.5显示下载日志

下载过程是一个繁琐的过程,包括连接、认证、要求、接收等多步操作,每一步都有可能出现错误,我们在程序中通过捕获NMHttp组件触发的事件以及自定义的异常事件获取有关下载过程的信息,通过程序前端窗体显示给使用者,这样可使用户对当时的下载状态一目了然。

5结语

本系统虽然实现了前面所述的各种功能,但是在下载内容类型、下载页面层数、前端显示方式等方面还可进一步完善与扩充。目前,无论是国内还是国外,对网站资源建立指引库的研究已有很多,但直接对网上信息内容进行自动采集的研究尚不多见。我们这个系统的研究开发不仅充实和发展了网上信息组织与管理的理论方法,而且促进了网上信息自动处理的实用技术和手段的应用研究,对方便网上用户迅速准确地获取证券金融信息,提高证券金融信息服务机构的服务质量和水平具有积极的意义和作用。

上一篇:法学课程教学范式选择及革新 下一篇:工业化与城镇化促进三农问题发展