资源数据采集技术设计方案要点

资源数据采集技术方案

公司名称

2011年7月

二O一一年七月

目录

第1 部分概述 (3)

1.1 项目概况 (3)

1.2 系统建设目标 (3)

1.3 建设的原则 (4)

1.3.1 建设原则 (4)

1.4 参考资料和标准 (5)

第2 部分系统总体框架与技术路线 (5)

2.1 系统应用架构 (6)

2.2 系统层次架构 (6)

2.3 关键技术与路线 (7)

第3 部分系统设计规范 (9)

第4 部分系统详细设计 (9)

第1 部分概述

1.1 项目概况

Internet已经发展成为当今世界上最大的信息库和全球范围内传播知识的主要渠道,站点遍布全球的巨大信息服务网,为用户提供了一个极具价值的信息源。无论是个人的发展还是企业竞争力的提升都越来越多地依赖对网上信息资源的利用。

现在是信息时代,信息是一种重要的资源,它在人们的生活和工作中起着重要的作用。计算机和现代信息技术的迅速发展,使Internet成为人们传递信息的一个重要的桥梁。网络的不断发展,伴随着大量信息的产生,如何在海量的信息源中查找搜集所需的信息资源成为了我们今后建设在线预订类旅游网重要的组成部分。

因此,在当今高度信息化的社会里,信息的获取和信息的及时性。而Web数据采集可以通过一系列方法,依据用户兴趣,自动搜取网上特定种类的信息,去除无关数据和垃圾数据,筛选虚假数据和迟滞数据,过滤重复数据。直接将信息按照用户的要求呈现给用户。可以大大减轻用户的信息过载和信息迷失。

1.2 系统建设目标

在线预订类旅游网是在线提供机票、酒店、旅游线路等旅游商品为主,涉及食、住、行、游、购、娱等多方面的综合资讯信息、全方位的旅行信息和预订服务的网站。

如果用户要搜集这一类网站的相关数据,通常的做法是人工浏览网站,查看最近更新的信息。然后再将之复制粘贴到Excel文档或已有资源系统中。这种做法不仅费时费力,而且在查找的过程中可能还会遗漏,数据转移的过程中会出错。针对这种情况,在线预订类旅游网信息自动采集的系统可以实现数据采集的高效化和自动化。

1.3 建设的原则

1.3.1 建设原则

由于在线预订类旅游网的数据采集涉及的方面多、数据量大、采集源数据结构多样化的特点。因此,在进行项目建设的过程中,应该遵循以下原则:

可扩充性

根据实际的要求,系统可被方便地载减和灵活的扩展,使系统能适应变化和新情况。可以实现模块级别的动态扩展,而且是运行时的。所谓运行时模块的动态扩展,比如说你需要增加一些新的功能,你可以将新开发的类和文件按照Bundle进行组织,然后直接扔到运行时环境下,这些功能就可以用了。因此系统不会受技术改造而重新做出调整。

创新性

软件的投资要考虑到今后的发展,不能使用落后的产品与技术,避免投资的浪费;在系统软件选型、开发技术上,达到国内外先进水平。

规范性和标准性

整个设计方案从网络协议、操作系统到各个设计细节,应该全部遵循通用的国际或行业标准,符合国家有关标准规范的。

低耦合性

采集系统与其它系统彼此间相对独立,直接进行数据库入库、sql同步或者基于txt/xml 的数据交换,保证整体系统的低耦合性。

高效性

在底层的技术实现上采用java语言,跨平台,跨数据库,运行效率卓越。

安全、稳定、准确、及时性

采用先进的算法,采用多个子系统和工具组成一个安全、稳定、准确、及时的解决方案。方案在总体设计上遵循稳定、开放、可扩展、经济、安全的原则,从而使整个方案组成合理,技术先进,易于扩展,既能满足当前的业务数据处理要求,又能符合长期发展的需要。

易操作和易维护原则

整个系统易于维护,容易操作,易学,易用,完全通过WEB方式完成,降低维护的技术难度,也减少了人为隐患的发生。

1.4 参考资料和标准

主要参阅并依据以下一些参考资料及标准:

●《中国项目管理知识体系》(C-PMBOK),2001.5

●GB/T 1526-1989《信息处理数据流程图、程序流程图、系统流程图、程序网络

图、系统资源图的文件编制符号及约定》

●GB/T 8566-1995《信息技术软件生存期过程》

●GB/T 8567-1988《计算机软件产品开发文件编制指南》

●GB/T 9385-1988《计算机软件需求说明编制指南》

●GB/T 13702-1992《计算机件分类与代码》

●GB/T 11457-1995《软件工程术语》

第2 部分系统总体框架与技术路线

网络信息资源采集系统是一套功能强大的网络信息资源开发利用与整合系统,可用于定制跟踪和监控互联网实时信息,建立可再利用的信息服务系统。能够从各种网络信息源,包括网页、BLOG、论坛等采集用户感兴趣的特定信息,经自动分类处理后,以多种形式提供给最终用户使用。

2.1 系统应用架构

客户端

数据流

控制流

● 网络蜘蛛:按照指定规则抓取网站数据。

● 数据分析:分析从网络蜘蛛来的数据,过滤掉我们不需要的信息。

● 数据解析:根据指定资源格式(字段)的定义,进行数据库字段级别的解析。

● 分组分析:根据不同的网络资源类型进行分类,并以多种存储方式进行存储。

2.2 系统层次架构

整个系统分为四层,分别为:

● 数据层:数据层负责存储抓取来的各种信息及数据,这里面包括网页、文档、关

系型数据、多媒体数据等。

●支撑层:支撑层提供了关键的硬、软件支撑系统,包括应用服务器、WEB服务器、

规范接口等规范支撑系统。

●应用层:在应用层主要提供网络资源采集、数据转换、分析、处理、导出、发布、

采集监控、消息通知、登录验证、任务计划、认证码识别等服务。

●表现层:表现层通过浏览器等方式,为用户提供多样化的信息服务。

2.3 关键技术与路线

为了充分满足本项目的建设:我们采用先进、主流、可靠、实用、性价比好的三层架构体系,充分考虑今后纵向、横向扩张能力。采用构件化和面向对象技术,使系统具有灵活的扩展性和良好的移植性。

2.3.1 J2EE规范体系

从软件层次上看,我们采用了典型的J2EE三层架构体系,即应用—支撑—数据三层。简单地说,J2EE(Java[tm] 2 Platform Enterprise Edition)是一个标准中间件体系结构,旨在简化和规范多层分布式应用系统的开发和部署,有了它,开发者只需要集中精力编写代码来表达应用的商业逻辑和表示逻辑,至于其他系统问题,如内存管理,多线程,资源分布和垃圾收集等,都将由J2EE自动完成。

J2EE已经被证明是一个稳定的、可扩展的、成熟的平台,在国内外拥有众多成功的应用实例。J2EE 应用服务器(Application Server)采用目前国际最先进的开发理念、拥有许多适合基于Internet应用需求的特点:

●三层结构体系——最适合Internet环境,可以使系统有很强的可扩展性和可管理

性。

●面向对象、组件化设计——2EE是一种组件技术,已完成的模块能方便的移植到

其它地方,可以提高开发速度,降低开发成本。

●基于JA V A完全跨平台特性——与平台无关,适应Internet需要,并能得到大多数

厂商支持,用户可根据需要选择合适的服务器硬件和数据库。并且如果需要更换

系统平台时,J2EE也能方便的进行移植。

把J2EE三层架构软件体系引用到资源采集系统,将大大提高系统的可移植性、可伸缩性和可扩展性。

2.3.2 XML技术

XML(eXtensible Markup Language,可扩展标记语言),是当前最热门的网络技术之一,被称为“第二代Web语言”、“下一代网络应用的基石”。自它被提出以来,几乎得到了业界所有大公司的支持。XML具有卓越的性能,它具有四大特点:

●优良的数据存储格式

●可扩展性

●高度结构化

●方便的网络传输

以XML技术作为支持,为用户自定义应用界面和业务数据结构,并将其与底层数据库定义格式、界面标准输入、输出的接口转换作了实现,可实现分布式、异构应用系统之间的数据交换。

我们将在本项目中主要以XML为存储方式,方便扩展和数据分析。

2.3.3 WEB2.0技术

Web2.0,是相对Web1.0(2003年以前的互联网模式)的新的一类互联网应用的统称,是一次从核心内容到外部应用的革命,是依据“六度分隔”(注:由美国哈佛大学社会心理学教授斯坦利·米尔格兰姆发现的,你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。)、XML、AJAX等新理论和技术实现的互联网新一代模式。由Web1.0单纯通过网络浏览器浏览html网页模式向内容更丰富、联系性更强、工具性更强的Web2.0互联网模式的发展已经成为互联网新的发展趋势。Web1.0到Web2.0的转变,具体的说,从模式上是单纯的“读”向“写”、“共同建设”发展;由

被动地接收互联网信息向主动创造网络信息迈进。运行机制上,由“Client Server”向“Web Services”转变;作者由程序员等专业人士向全部普通用户发展;应用上由初级的“滑稽”的应用向全面大量应用发展。采用创新的Ajax技术,同等网络环境下,页面响应时间最高减少90%。

2.3.4 系统集成API

XML文档结构在很多方面可以方便地反映对象的结构,这也是其适合面向对象的软件技术的一个关键点。使用XML对数据源的数据进行处理,它起着接口层或者封装的作用,这样不同的应用程序之间,不同的操作系统之间,不同的数据库之间都可以交换数据。使用XML作为数据交换工具还可以解决异构数据库之间的集成。

对本项目中涉及到的数据采集、转换、分析、处理等问题,我们将开发专用的数据接口,采用XML技术作为数据交换的页面描述规范。

XStream是一个Java和XML相互转换的工具。使用非常的简单,并且可以自定义转换的过程,但是这个组件仅能做的就是这些最基本的工作,有了这个组件,我们可以不用考虑具体一个Java对象和XML之间问题了。

第3 部分系统设计规范

第4 部分系统详细设计

4.1 应用功能设计

4.1.1 资源采集

我们可以使用采集,对网络上的各种资源进行挖掘。

a)采集工程:采集工作的详细设置文件,包含了要采集的资源链接。

1.精确:根据指定资源格式(字段)的定义,进行数据库字段级别的采集。

2.蜘蛛/爬虫:根据指定的文件匹配表达式,自动对指定网站的资源进行全面分

析和采集。

b)字段:各种资源的最小单位,譬如您要采集某个网站的多个帖子,那么每个帖子可

能包含以下字段:作者、标题、日期、内容等。

c)链页:一些帖子在多页面里的,这种情况下您可以为帖子的内容字段设置链页属性,

自动把多个分页的内容合并到内容字段。

d)追踪:一些资源是要从列表页面中,通过点击多个页面才显示的,这种情况下,您

可以为内容自动设置跟踪属性,自动获取最终的内容。

e)登录验证:一些资源网站需要您登录后才可以访问内容,这种情况下下,您可以为

整个网站、每个链接甚至每个资源单独定义登录验证以满足具体需求。

1.参数:这是模拟登录需要的参数,譬如用户名、密码等。

2.登录采集工程:一些网站的登录认证相当复杂,往往会采用一些动态参数/值,

如果用固定的参数是无法满足登录需求的,这个时候,您可以使用采集工程来

自动获取登录参数的值。

3.登录脚本:如果即便使用采集工程仍然无法满足一些特别网站的登录需求,您

可以使用自定义的登录脚本来实现相应的登录认证。

f)数据处理:

1.脏字过滤:对符合国家规定的敏感字符的过滤,还可以自定义要过滤的字符,

以确保采集到的内容符合相关法律法规。

2.垃圾内容过滤:使用贝叶斯概率模型对已采集的内容自动分析判定是否为垃圾

内容,您可以自行对各种垃圾内容进行过滤。

3.内容嗅探:对于Flash/Silverlight播放器,会在页面加载之后才从后台获取实

际的文件(.FLV/MP3/.XAP等),您可以使用内容嗅探实现对这些实际内容的采

集。

4.关键字/标签(Tag)自动分析:利用全文分词对采集的内容进行分析,自动获取

内容的关键字/标签列表。

5.文件格式批量转换:对大量文件的快速转换,改变图片或视频的大小/添加水

印/改变格式,抽取压缩文件,Office系列文档转换为HTML,以多种方式修

改文件名称和内容,修改图片文件属性,文本排版,文本混淆,文本简繁大小

写编码互转,文本切分合并,网页文本互转,不良图片过滤,数据转换等。g)图片转换:改变图片大小和格式,添加水印,支持jpg、bmp、png、gif、icl、jpeg

等。

h)压缩文档:抽取/转换/生成压缩文档,支持zip、rar等。

i)Office文档支持:支持doc、docx、xls、xlsx、xml、pdf、rtf等。

j)文本排版:段落智能修正、去掉干扰符、修正段落首尾空格、修正标点符号,支持txt,htm,eml。

k)文本切分合并:按大小、行数或段落数剪切文本内容、和并内容,支持txt,htm,eml。l)不良图片过滤:识别并过滤不良图片,支持所有图片。

m)数据转换:使用自定义脚本转换数据和文件,支持采集工程、各种数据库和各种文件。

n)快速下载:

1.链接分析:复制要下载各种资源(如图片等)的链接或网页内容,全自动分析并

下载到本地磁盘。

2.嗅探:复制视频地址或内容,全自动分析并下载视频,特有嗅探功能,支持所

有视频网站。

o)通过多线程并行采集,加快采集速度。

4.1.2 数据导出

a)导出数据库:把采集后的数据导出到各大数据库/数据文件中。

b)以Excel、XML等文件形式导出。

c)可以把文件导出到FTP。

d)自定义导出脚本。

4.1.3 资源信息发布

a)采集后的数据:可以把采集后的数据,发布到指定网站或系统。

b)网络请求:可以自定义请求,譬如网络投票等。

4.1.4 任务计划

可以指定采集、转换、导出、发布、请求等各种任务定时执行。

a)可启用多个线程来完成同一个采集任务。

b)可自由设定采集网页数和暂停的时间,此功能主要解决采集过快而被屏闭或禁止访问

等问题。

c)可以在采集当中随身暂停、启动或停止任务。

4.1.5 消息通知

能够自动通过多种方式(邮件、系统日志、系统声音等)通知采集发布情况。

a)在各种任务完成之后,如采集,发布,计划任务等。

b)监控指定网站并在数据改变时。

4.1.6 监控设置

当网络资源更新或采集到新的资源信息时,通过各种通知方式,随时提醒。

4.1.7 脚本定义

脚本是对各种功能的自定义扩展,支持JavaScript语言编写。

a)采集脚本:在采集工程中,如果遇到一些特殊的资源,正常的采集方式无法胜任的

时候,可以通过脚本来进行自定义的采集。

b)发布脚本:可以针对特殊的网站进行发送请求。

c)常用脚本:系统内置的常用的脚本,如对专用链的解释/编码、条形码的生成、敏

感字符的过滤、中文分词/Tag识别、计算数学表达式、RSS解释与生成、消息通知等。

4.1.8 认证码识别

系统自动识别各种登录页面的认证码、验证码等。

a)默认识别:全自动识别各种常见的认证码。

b)智能识别:自定义识别各种特殊的认证码。

4.1.9 系统扩展

系统提供以下丰富的程序接口,方便系统进行二次开发。

a)消息通知:编写各种特定的消息通知方式以满足需求。

b)中文分词/Tag识别。

c)数据转换:转换各种采集后的数据到系统当中。

d)功能扩展:对各种功能(采集、发布、脚本、消息通知、计划任务等)进行自定义设

置并应用到实际的系统运行中。

4.1.10 任务管理

可以对采集、发布、请求、计划任务、脚本、消息通知等各种任务进行全面管理。

4.1.11 地图周边资源采集

可根据采集到的数据在地图上显示,以该点为中心,在指定的搜索范围内搜索其周边的所有资源信息,并采集到系统当中。

以酒店为例:以酒店为中心的5公里范围内,在这范围内的所有酒店、旅行社、小吃、旅游景点、购物场所、公交信息等都可以搜索到并采集下来。

相关文档
最新文档