劉霖 李德帥 胡家麟 石建鑫
摘 要:本研究主要是開發(fā)一個基于微信小程序的高校圖書館服務系統(tǒng)(以東北林業(yè)大學圖書館為例),該系統(tǒng)運用已有的數(shù)字圖書系統(tǒng),應用Python Web 爬蟲、Django Web框架等技術;以微信小程序為載體實現(xiàn)一個具有較好用戶體驗、低遷移成本、且交互屬性良好的移動圖書服務系統(tǒng)。
關鍵詞:微信小程序; 圖書館服務; 互聯(lián)網爬蟲; 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
引言
受當前移動互聯(lián)網浪潮的影響,大量高校圖書館陸續(xù)對其館藏資源進行相應的數(shù)字化改造。但由于其服務系統(tǒng)大多基于傳統(tǒng)的B/S架構,對移動端設備適配性不佳,因而在實際使用中存在使用體驗較差,部分功能實時交互性差等一系列問題。
針對上述問題,直接開發(fā)相關平臺的APP自然是一種較好的解決方案,但此方案也存在遷移、推廣成本高、臃腫繁雜之類的弊端。使用微信小程序能較好地彌補上述一系列不足,只要用戶安裝了微信的客戶端,即可方便地獲取并使用相關的服務。在利用微信龐大的用戶基數(shù)降低開發(fā)成本的同時還擁有接近于APP的使用體驗。
因此,本文討論并設計了一個基于微信小程序實現(xiàn)移動圖書館服務系統(tǒng)(以東北林業(yè)大學圖書館為例),通過使用Web爬蟲從現(xiàn)有的圖書館服務系統(tǒng)中爬取相應的數(shù)據(jù),并通過一系列處理,從而令用戶在較低的遷移成本上使用該系統(tǒng)所提供的一系列服務。
1 關鍵技術
本系統(tǒng)主要使用Python Django Web框架及微信小程序開發(fā),所使用關鍵開發(fā)技術如下所述。
1.1 Django Web框架
Django是一種十分高效敏捷的Web 框架[1]?;赑ython,采用了MTV的框架模式,即模型(Model)、模板(Template)和視圖(View);從而實現(xiàn)了數(shù)據(jù)、業(yè)務、展現(xiàn)的分層;這在增進項目規(guī)范性的同時也令其更易維護。此外,Django還支持第三方插件擴展。Django Web框架主要用于實現(xiàn)對后臺相關功能的封裝。
1.2 微信小程序
微信小程序是騰訊公司基于微信客戶端構建開發(fā)實現(xiàn)的Web應用程序,其在擁有接近于本地APP的用戶體驗的同時也極大地縮減了應用的開發(fā)遷移成本。同時,依托騰訊微信龐大的用戶量,微信小程序也有著極好的社交性和低推廣成本。在系統(tǒng)中,微信小程序是實現(xiàn)服務的主要載體。
1.3 Ajax技術
Ajax(Asynchronous Javascript And XML)是一種創(chuàng)建交互式網頁應用的網頁開發(fā)技術。具體而言就是通過前端調用 Ajax提交請求,將請求傳遞給后臺,后臺再通過與服務器交互,調用數(shù)據(jù)庫獲取持久化信息后進行少量的數(shù)據(jù)交換,實現(xiàn)前端界面的更新。 Ajax 可以使網頁實現(xiàn)異步更新[2]。在系統(tǒng)中, Ajax跨域操作是完成前后端通信的最主要的方法。
1.4 Rest
Rest(representational state transfer, 即表象性狀態(tài)轉變或者表述性狀態(tài)轉移)[3]是Web服務的一種架構風格,使用HTTP、URL、XML、JSON、HTML等廣泛流行的標準和協(xié)議,是一種輕量級、跨平臺、跨語言的架構設計。
2 系統(tǒng)功能分析與設計
2.1 系統(tǒng)需求分析與設計
2.1.1 國內現(xiàn)狀與功能
當前國內高校圖書服務系統(tǒng)大多以傳統(tǒng)PC為載體,主要實現(xiàn)功能如下:
(1)OPAC系統(tǒng)集成的相關服務,包括館藏目錄檢索、個人借閱信息的查閱、圖書的續(xù)借與預約、借閱證的掛失[4]。
(2)電子資源文獻服務,包括電子資源的檢索、全文瀏覽及下載、文獻傳遞[4]。
(3)信息公告服務,包括圖書館公告,新資源通知[4]。
(4)信息咨詢交流互動服務,包括信息咨詢、圖書評論、交流互動等[4]。
2.1.2 功能設計
由于本系統(tǒng)是以微信小程序為載體,而微信作為微信小程序的實現(xiàn)載體,為微信小程序提供了大
量擴展實用功能;為利用好這些特性,提高用戶體驗水平,本系統(tǒng)具體功能設計如下:
(1)OPAC。該部分功能包括圖書信息二維碼的生成,館藏目錄檢索以及個人借閱信息情況查詢;其中為利用微信的相關組件,人們在館藏目錄檢索中增加了二維碼掃碼檢索的功能。
(2)信息公告。該部分功能包括圖書公告及新資源公告。
(3)交流互動。該部分功能包括圖書薦購、信息資訊即交流互動;該部分主要通過微信的客服套件予以實現(xiàn)。
(4)數(shù)據(jù)維護。該部分功能包括圖書館藏信息持久化,此功能通過爬蟲框架對已有的圖書館藏系統(tǒng)相關信息進行定期的整站爬取。
功能結構如圖1所示。
2.2 物理架構設計
根據(jù)東北林業(yè)大學校園數(shù)字圖書系統(tǒng)拓補圖[5],具體設計如圖2所示。
2.3 系統(tǒng)架構設計
本系統(tǒng)使用MVC開發(fā)模式。部分遵守RESTful[6],結合業(yè)務需求后具體設計如圖3所示。
architecture design
3 主要功能實現(xiàn)
3.1 與微信相關服務的集成與實現(xiàn)
系統(tǒng)微信登錄相關操作使用微信小程序自帶的登錄認證體系,具體操作流程如圖4所示。
3.2 主要功能的集成與實現(xiàn)
3.2.1 館藏目錄檢索
由于東北林業(yè)大學內網中已建有一套完整的Web版圖書OPAC檢索系統(tǒng),因此可以直接通過python requests庫發(fā)送符合具體業(yè)務需求的request請求,至已有的OPAC系統(tǒng)去獲取具體的結果。使用python自帶的正則表達式或Xpath解析式模塊去提取返回結果中需要的信息,最后將提取的結果轉換成Json返回給此服務請求方。
由于外網訪問內網資源,存在服務不穩(wěn)定的問題,因此在內網服務無法正常訪問時,將直接查詢緩存至外網服務器上的圖書數(shù)據(jù)節(jié)點。目錄查詢操作流程如圖5所示。
3.2.2 個人借閱信息查詢
雖然通過登錄Web版東北林業(yè)大學數(shù)字圖書OPAC系統(tǒng)可直接查看目標用戶的借閱信息;而絕大部分用戶并不知道自己的圖書館賬號信息。由于東北林業(yè)大學的WIFI系統(tǒng)是以東北林業(yè)大學數(shù)字東林系統(tǒng)賬號作為登錄憑證,令該賬戶信息在人們的目標用戶中具有良好的推廣度;同時數(shù)字東林系統(tǒng)中存在有圖書館應用。因此本系統(tǒng)使用數(shù)字東林賬戶為模擬登錄依據(jù),通過使用requests庫模擬登錄數(shù)字東林系統(tǒng)后,使用數(shù)字圖書館應用跳轉至Web版圖書OPAC系統(tǒng)獲取并解析返回Json結果。個人借閱信息查詢操作流程如圖6所示。
4 結束語
基于微信小程序的高校移動圖書服務系統(tǒng),通過分析高校移動數(shù)字服務系統(tǒng)的現(xiàn)狀,結合已有的數(shù)字圖書館系統(tǒng),采用Django框架、基于Web技術
利用微信平臺實現(xiàn)了高校移動數(shù)字圖書服務系統(tǒng)設計,實現(xiàn)了OPAC集成、信息咨詢、互動等功能。本系統(tǒng)采用了最新的Web開發(fā)技術,使用的框架具有低耦合性,方便系統(tǒng)二次開發(fā)及后期維護。
參考文獻
[1] 王冉陽. 基于Django和Python的Web開發(fā)[J]. 電腦編程技巧與維護, 2009(2):56-58.
[2] HOLDENERIII A T. Ajax權威指南[M]. 陳宗斌,等譯. 機械工業(yè)出版社, 2009.
[3] 唐明偉, 卞藝杰, 陶飛飛. RESTful架構下圖書管理系統(tǒng)的研究與實現(xiàn)[J]. 現(xiàn)代圖書情報技術, 2010, 26(9):84-89.
[4] 李玉紅. 國內“211”高校圖書館移動信息服務發(fā)展狀況[J]. 現(xiàn)代情報, 2014, 34(3):78-81.
[5] 張鳳斌, 林希森. 東北林業(yè)大學圖書館新館網絡系統(tǒng)解決方案[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] 劉衛(wèi)東, 徐恪, 劉亞霄. 松散耦合的分布式信息系統(tǒng)[J]. 清華大學學報(自然科學版), 2002, 42(1):40-43.
[8] 安春玲. 微信小程序在圖書館移動服務中的應用研究[J]. 當代教育實踐與教學研究:電子版, 2017(9):260.
[9] 張建中, 黃艷飛, 熊擁軍. 基于ElasticSearch的數(shù)字圖書館檢索系統(tǒng)[J]. 計算機與現(xiàn)代化, 2015(6):69-73.
[10]米碩, 孫瑞彬, 李欣,等. Scrapy分布式爬蟲原理分析與概述[J]. 中國新通信, 2018(4):234.