基于DOM的维普文献信息智能提取系统设计与实现 联系客服

发布时间 : 星期日 文章基于DOM的维普文献信息智能提取系统设计与实现更新完毕开始阅读c26e3559bceb19e8b9f6ba92

没有给予特定的API;另一方面是因为目前没有针对文献智能提取的软件产品。由于文献的收录数量在一方面决定了高校图书馆的学术资源,所以本文主要阐述在高校购买了维普文献资源的前提下,针对维普的文献信息关键字智能提取系统的设计与实现;解决文献信息提取收录的繁琐,使得其变得高效、低成本。 2.1.2. 目的

该软件的设计目标必须尽量达到人力与设备费用的节省,并且使软件处理数据的速度提高,软件的整个设计过程必须通过生产能力的提高,人员工作效率的提高等等,使软件开发成本最小化,实现保证软件质量的前提下的资金投入最小化。 2.1.3. 一般约束

开发数据库:MYSQL5.6 1) 爬虫

? 开发环境:Windows , Visual Studio 2013 ? 开发语言:C#

? 开源类:HttpHelper v1.4.6

? 运行环境:Windows XP 以上 , Microsoft .NET Framework 4.0 2) 管理端

? 开发环境:Windows , Sublime Text 3 ? 开发语言:PHP

? 开源框架:ThinkPHP v3.2.2, Bootstrap v3.3.4 ? 运行环境:Apache , PHP 5.2 以上

? 使用环境:Chrome 10+/IE9+/ Opera 14+/Firefox 10+ /Safari 4+ 3) 开源框架及类库简介

? HttpHelper:由国内开发者(苏飞)开源的HTTP请求类库,使用C#语言编写。 ? ThinkPHP:国内开源的一套PHP开发框架,使用MVC架构。 ? Bootstrap:由Twitter设计师设计的一套开源前端开发框架。

2.1.4. 依赖

爬虫配置依赖与管理端爬虫设置,爬虫执行任务依赖与用户添加了任务。本文中所提到

2

的任务是指用户添加的关键字搜索任务;配置是指针对爬虫搜索的网页配置。 2.1.5. 软件设计及开发方法

本软件采用模块化设计,模块之间尽可能独立,降低耦合读。软件采用敏捷开发方式进行开发。

2.1.6. 对现有系统的分析

目前市面上还没有一款主要针对文献信息采集的系统,而且由于大多数高校存在买有第三方资源,但自己独立的文献资源相对较少;所以都会自行收录第三方文献库文献信息以增加文献资源,但现有的收录方案存在一下几个问题:

1) 效率:由于没有收录系统,都是人工进行搜索,之后导入系统,效率相对很低。 2) 费用:使用人工采集费用相对高昂。

3) 人员:在需要收录大量文献信息的情况下,需要大量工作人员。

4) 局限性:通过查询文献系统,目前没有较为成熟解决方案,当前的文献收录方案过

于老旧,这些都明显了需要一个新的解决方案来适应大量的数据采集;所以开发一个智能爬虫是很有必要性的。

2.1.7. 其他

1) 经济可行性:软件开发使用开源技术,以及免费的MYSQL数据库,经济成本相对

很低。

2) 技术可行性:理论上本软件所使用的技术都可以实现。 3) 法律可行性:使用本软件的前提可能需要购买维普文献资源。 2.2. 需求分析 2.2.1. 需求分析前提

对于大多数高校来说,发挥图书馆文献利用率很有必要性,为图书馆实现信息化,最大效用的利用所用的资源;但当下很多高校都没能很好的把资源进行整合,由于独立资源少,所以使用较多的解决方案就是购买第三方资源并进行整合,本章第一节第九点已经分析了当前高校整合中所用文献采集解决方案,从而提出了需要一个新的解决方案:网络爬虫进行智能收录。

3

2.2.2. 系统功能性需求

本软件为实现高效以及方便管理,主要分为两大部分: 1) 爬虫部分

? 获取配置:爬虫在启动时以及启动之后会获取系统基础配置以及搜索基础设置 ? 获取任务:爬虫在到达指定时间间隔会自动去获取任务。 ? 更新任务:爬虫在获取任务时以及执行任务之后会更新任务。

? 执行任务:爬虫获取任务之后,会根据任务配置以及搜索基础配置去执行任务。 ? 收录记录:执行任务之后,爬虫会把任务产生的数据进行收录。 2) 管理端部分

? 系统状态查看:可查看当前系统的状态。

? 任务管理:用户可对任务进行管理,包含:添加,删除,修改。

? 配置管理:用户可通过对配置进行管理,以实现针对不同web DOM结构进行

搜索,分为:配置基础信息管理以及每个配置所对应的内容筛选规则管理; ? 爬虫设置:对爬虫的系统进行配置,包含:任务监听时间间隔,任务执行线程

数量,任务失败重试次数。

? 记录管理:搜索任务所收录的文献信息记录,可对进行删除,导出EXCEL。 ? 日志管理:日志查看,以了解爬虫执行任务的消息状态以及反馈信息,及用户

关键操作的记录。

2.2.3. 系统非功能性需求

1) 数据需求

? 爬虫:所有数据处理均采用多线程,保证了其高效性。

? 管理端:所有的前端数据请求与处理均采用异步(JQuery),并带有处理提醒,

保证用户体验。

2) 系统容量需求

? 爬虫:线程并发任务受限于运行硬件,普通电脑可保证10个线程并发。 ? 管理端:可承受1000并发量。

2.2.4. 用户接口需求

1) 爬虫

4

? 采用极简设计,拥有状态提示窗。

? 后台多线程执行,以达到高效的进行文献信息抓取。 ? 程序大多数设置均在管理端进行配置,方便用户管理。 2) 管理端

? 使用Bootstrap前端框架进行设计,重在展现内容。 ? 为达到数据的冗余低,系统多数删除操作是不可逆。

? 系统采用MVC设计思想,前端与后端的耦合度低,功能均采用模块化设计,

降低耦合度的同时使得维护方便。

? EXCEL导出支持2007与2003版本,默认是2007

2.2.5. 硬件接口需求

1) 服务器使用可选不同方案,方案:

? 采用Windows Server 2008 以上,可同时运行爬虫与管理端。

? 采用Linux 运行管理端,爬虫可运行于普通Windows操作系统电脑上。 2) 管理端得益于Bootstrap 框架,兼容主流浏览器,同时支持移动设备浏览器。 2.2.6. 软件质量属性

1) 正确性:本软件只有在达到预期状态才会正式交付给使用方。

2) 可靠性:软件使用敏捷开发,保证开发效率的同时,会针对每个模块进行测试,在

开发完成之后会有继承测试,以保证软件最少的BUG,更高的质量。 3) 效率:

a) 爬虫:根据网络环境以及运行环境的带宽而定。

b) 管理端:普通操作一秒内应答;任务列表记录返回数量根据数据库性能而定;

EXCEL文件导出根据导出数据量而定,3000条在6秒左右。

4) 完整性:所有数据操作都会以事务方式提交,保证在出错的情况下进行回滚。 5) 易用性及可维护性:软件采用模块化设计,界面设计以突出内容用为主,并使用开

源类及框架,保证易用性的同时,可维护性大大提高。

6) 可复用性:系统设计采用面向对象以及MVC架构,各个模块均可进行复用。 7) 可移植性:

a) 爬虫:采用C# .Net Framework 4.0开发,理论上所有高级语言都可以很容易的

5