劉霖 李德帥 胡家麟 石建鑫
摘 要:本研究主要是開發一個基于微信小程序的高校圖書館服務系統(以東北林業大學圖書館為例),該系統運用已有的數字圖書系統,應用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.