刘霖 李德帅 胡家麟 石建鑫
摘 要:本研究主要是开发一个基于微信小程序的高校图书馆服务系统(以东北林业大学图书馆为例),该系统运用已有的数字图书系统,应用Python Web 爬虫、Django Web框架等技术;以微信小程序为载体实现一个具有较好用户体验、低迁移成本、且交互属性良好的移动图书服务系统。
关键词:微信小程序; 图书馆服务; 互联网爬虫; Python
Abstract: This research is mainly to develop an university digital library service system based on the WeChat Mini Program (using Northeast Forestry University Library as an example). By using the existing digital library system and the technologies such as Python web crawler, DjangoWeb framework, etc, the paper designs and builds a WeChat mini program which is used as a carrier to implement a mobile library service system with good user experience, low migration cost and good interaction attributes.
Key words: Wechat mini program; library service; Web crawler; Python
引言
受当前移动互联网浪潮的影响,大量高校图书馆陆续对其馆藏资源进行相应的数字化改造。但由于其服务系统大多基于传统的B/S架构,对移动端设备适配性不佳,因而在实际使用中存在使用体验较差,部分功能实时交互性差等一系列问题。
针对上述问题,直接开发相关平台的APP自然是一种较好的解决方案,但此方案也存在迁移、推广成本高、臃肿繁杂之类的弊端。使用微信小程序能较好地弥补上述一系列不足,只要用户安装了微信的客户端,即可方便地获取并使用相关的服务。在利用微信庞大的用户基数降低开发成本的同时还拥有接近于APP的使用体验。
因此,本文讨论并设计了一个基于微信小程序实现移动图书馆服务系统(以东北林业大学图书馆为例),通过使用Web爬虫从现有的图书馆服务系统中爬取相应的数据,并通过一系列处理,从而令用户在较低的迁移成本上使用该系统所提供的一系列服务。
1 关键技术
本系统主要使用Python Django Web框架及微信小程序开发,所使用关键开发技术如下所述。
1.1 Django Web框架
Django是一种十分高效敏捷的Web 框架[1]。基于Python,采用了MTV的框架模式,即模型(Model)、模板(Template)和视图(View);从而实现了数据、业务、展现的分层;这在增进项目规范性的同时也令其更易维护。此外,Django还支持第三方插件扩展。Django Web框架主要用于实现对后台相关功能的封装。
1.2 微信小程序
微信小程序是腾讯公司基于微信客户端构建开发实现的Web应用程序,其在拥有接近于本地APP的用户体验的同时也极大地缩减了应用的开发迁移成本。同时,依托腾讯微信庞大的用户量,微信小程序也有着极好的社交性和低推广成本。在系统中,微信小程序是实现服务的主要载体。
1.3 Ajax技术
Ajax(Asynchronous Javascript And XML)是一种创建交互式网页应用的网页开发技术。具体而言就是通过前端调用 Ajax提交请求,将请求传递给后台,后台再通过与服务器交互,调用数据库获取持久化信息后进行少量的数据交换,实现前端界面的更新。 Ajax 可以使网页实现异步更新[2]。在系统中, Ajax跨域操作是完成前后端通信的最主要的方法。
1.4 Rest
Rest(representational state transfer, 即表象性狀态转变或者表述性状态转移)[3]是Web服务的一种架构风格,使用HTTP、URL、XML、JSON、HTML等广泛流行的标准和协议,是一种轻量级、跨平台、跨语言的架构设计。
2 系统功能分析与设计
2.1 系统需求分析与设计
2.1.1 国内现状与功能
当前国内高校图书服务系统大多以传统PC为载体,主要实现功能如下:
(1)OPAC系统集成的相关服务,包括馆藏目录检索、个人借阅信息的查阅、图书的续借与预约、借阅证的挂失[4]。
(2)电子资源文献服务,包括电子资源的检索、全文浏览及下载、文献传递[4]。
(3)信息公告服务,包括图书馆公告,新资源通知[4]。
(4)信息咨询交流互动服务,包括信息咨询、图书评论、交流互动等[4]。
2.1.2 功能设计
由于本系统是以微信小程序为载体,而微信作为微信小程序的实现载体,为微信小程序提供了大
量扩展实用功能;为利用好这些特性,提高用户体验水平,本系统具体功能设计如下:
(1)OPAC。该部分功能包括图书信息二维码的生成,馆藏目录检索以及个人借阅信息情况查询;其中为利用微信的相关组件,人们在馆藏目录检索中增加了二维码扫码检索的功能。
(2)信息公告。该部分功能包括图书公告及新资源公告。
(3)交流互动。该部分功能包括图书荐购、信息资讯即交流互动;该部分主要通过微信的客服套件予以实现。
(4)数据维护。该部分功能包括图书馆藏信息持久化,此功能通过爬虫框架对已有的图书馆藏系统相关信息进行定期的整站爬取。
功能结构如图1所示。
2.2 物理架构设计
根据东北林业大学校园数字图书系统拓补图[5],具体设计如图2所示。
2.3 系统架构设计
本系统使用MVC开发模式。部分遵守RESTful[6],结合业务需求后具体设计如图3所示。
architecture design
3 主要功能实现
3.1 与微信相关服务的集成与实现
系统微信登录相关操作使用微信小程序自带的登录认证体系,具体操作流程如图4所示。
3.2 主要功能的集成与实现
3.2.1 馆藏目录检索
由于东北林业大学内网中已建有一套完整的Web版图书OPAC检索系统,因此可以直接通过python requests库发送符合具体业务需求的request请求,至已有的OPAC系统去获取具体的结果。使用python自带的正则表达式或Xpath解析式模块去提取返回结果中需要的信息,最后将提取的结果转换成Json返回给此服务请求方。
由于外网访问内网资源,存在服务不稳定的问题,因此在内网服务无法正常访问时,将直接查询缓存至外网服务器上的图书数据节点。目录查询操作流程如图5所示。
3.2.2 个人借阅信息查询
虽然通过登录Web版东北林业大学数字图书OPAC系统可直接查看目标用户的借阅信息;而绝大部分用户并不知道自己的图书馆账号信息。由于东北林业大学的WIFI系统是以东北林业大学数字东林系统账号作为登录凭证,令该账户信息在人们的目标用户中具有良好的推广度;同时数字东林系统中存在有图书馆应用。因此本系统使用数字东林账户为模拟登录依据,通过使用requests库模拟登录数字东林系统后,使用数字图书馆应用跳转至Web版图书OPAC系统获取并解析返回Json结果。个人借阅信息查询操作流程如图6所示。
4 结束语
基于微信小程序的高校移动图书服务系统,通过分析高校移动数字服务系统的现状,结合已有的数字图书馆系统,采用Django框架、基于Web技术
利用微信平台实现了高校移动数字图书服务系统设计,实现了OPAC集成、信息咨询、互动等功能。本系统采用了最新的Web开发技术,使用的框架具有低耦合性,方便系统二次开发及后期维护。
参考文献
[1] 王冉阳. 基于Django和Python的Web开发[J]. 电脑编程技巧与维护, 2009(2):56-58.
[2] HOLDENERIII A T. Ajax权威指南[M]. 陈宗斌,等译. 机械工业出版社, 2009.
[3] 唐明伟, 卞艺杰, 陶飞飞. RESTful架构下图书管理系统的研究与实现[J]. 现代图书情报技术, 2010, 26(9):84-89.
[4] 李玉红. 国内“211”高校图书馆移动信息服务发展状况[J]. 现代情报, 2014, 34(3):78-81.
[5] 張凤斌, 林希森. 东北林业大学图书馆新馆网络系统解决方案[J]. 大学图书馆学报, 2003, 21(5):56-59.
[6] FIELDING R. Architectural styles and the design of network-based software architectures[D]. Irvine:University of California, 2000.
[7] 刘卫东, 徐恪, 刘亚霄. 松散耦合的分布式信息系统[J]. 清华大学学报(自然科学版), 2002, 42(1):40-43.
[8] 安春玲. 微信小程序在图书馆移动服务中的应用研究[J]. 当代教育实践与教学研究:电子版, 2017(9):260.
[9] 张建中, 黄艳飞, 熊拥军. 基于ElasticSearch的数字图书馆检索系统[J]. 计算机与现代化, 2015(6):69-73.
[10]米硕, 孙瑞彬, 李欣,等. Scrapy分布式爬虫原理分析与概述[J]. 中国新通信, 2018(4):234.