李凌 蔡芳 武昌首義學院
為了方便管理校內(nèi)外信息和發(fā)布新聞通知,大部分高校都有自己的內(nèi)網(wǎng)系統(tǒng)。然而,現(xiàn)在高校教師因為教學任務繁重,空閑時間變得碎片化,手機就成為了教師們實際獲取信息的最佳工具。由于微信APP的普及,公眾號作為一個天然的信息發(fā)布中心,可以很好的實現(xiàn)高校通知平臺的相關功能,提高行政辦公的效率。
整個系統(tǒng)依托在騰訊公司的微信公眾號平臺下來實現(xiàn),整體的系統(tǒng)架構(gòu)設計如下圖所示。
圖1 系統(tǒng)架構(gòu)設計示意圖
為了提升整套系統(tǒng)的兼容性,最大限度的減少對學校原信息平臺的影響,本套系統(tǒng)的設計是完全獨立于內(nèi)網(wǎng)信息平臺之外的。原內(nèi)網(wǎng)信息平臺僅作為本系統(tǒng)的信息提供者存在。通過網(wǎng)絡爬蟲技術,將原內(nèi)網(wǎng)的信息抓取、分類融合后存入校外公網(wǎng)的數(shù)據(jù)庫。在微信公眾平臺里,接入公網(wǎng)的數(shù)據(jù)庫,然后公眾號作為信息展示平臺,為手機終端用戶提供信息查看功能。
首先需要登陸微信公眾平臺申請賬號,并根據(jù)官方說明來申請相關業(yè)務。微信官方網(wǎng)站上有詳細的開發(fā)文檔,講解了如何對服務號進行相關設置,以及如何接入第三方數(shù)據(jù)接口。在此過程中,重點需要關注接入第三方數(shù)據(jù)接口的API數(shù)據(jù)格式,尤其是數(shù)據(jù)的封裝和解析。在本系統(tǒng)之后的具體開發(fā)過程中,會使用數(shù)據(jù)接口和微信公眾平臺進行通信。
要想實現(xiàn)手機終端隨時隨地訪問通知平臺,就需要將內(nèi)網(wǎng)信息和公網(wǎng)聯(lián)接在一起,突破內(nèi)網(wǎng)的物理IP段的屏障。在本系統(tǒng)中,設計了一個不間斷運作的爬蟲子系統(tǒng),該爬蟲子系統(tǒng)運作在校園網(wǎng)內(nèi)部的服務器中,它可以直接訪問學校內(nèi)網(wǎng)的信息資源。同時,在它爬取到相關信息后,再將數(shù)據(jù)整合并存至校外公網(wǎng)服務器所在的數(shù)據(jù)庫內(nèi)。
此外我們還需要開發(fā)一個簡單的web服務器,它讀取數(shù)據(jù)庫的數(shù)據(jù)并整合成HTTP協(xié)議的數(shù)據(jù)接口,為微信公眾號平臺提供數(shù)據(jù)響應。爬蟲將數(shù)據(jù)從校內(nèi)搬往校外,然后web服務器再將二次存儲的數(shù)據(jù)讀出來供微信公眾號展示。這樣用戶就可以通過微信APP,進入相關的公眾號,來直接訪問最原始的內(nèi)網(wǎng)通知信息。
在本系統(tǒng)中,一共涉及到三個子系統(tǒng),分別是:用于獲取數(shù)據(jù)的爬蟲子系統(tǒng),用于提供數(shù)據(jù)展示的web子系統(tǒng),以及用戶展示數(shù)據(jù)的公眾號。
(1)爬蟲子系統(tǒng)運行在校園網(wǎng)內(nèi)部的linux服務器上,使用python語言進行編碼,使用定時器來規(guī)范python爬蟲的定時任務。爬蟲采用python下的scrapy庫來實現(xiàn),爬取的數(shù)據(jù)使用HTTP協(xié)議存放在公網(wǎng)的數(shù)據(jù)庫中。
Python語言下的scrapy是非常流行的爬蟲庫,在它的基礎上,實現(xiàn)多線程的爬蟲系統(tǒng)可以提升整體爬蟲子系統(tǒng)的爬取效率。將爬取規(guī)則定制為.ini的配置文件,爬取規(guī)則和業(yè)務邏輯獨立,這樣即使內(nèi)網(wǎng)的網(wǎng)頁格式發(fā)生變化,也可以通過修改配置文件來完成極速適配,避免二次開發(fā),提升業(yè)務服務的效率。
(2)Web子系統(tǒng)運行在校外公網(wǎng)的Windows Server服務器上,使用PHP語言進行編碼,使用wamp程序來部署PHP的運行環(huán)境和Apache服務器環(huán)境。該web因為不需要展示頁面,因此語句中不需要太多HTML靜態(tài)頁面,數(shù)據(jù)格式采用JSON來實現(xiàn)。所有的數(shù)據(jù)封裝和解析格式按照微信公眾平臺的規(guī)范來進行開發(fā)實現(xiàn)。
Web子系統(tǒng)扮演一個中間人的角色,一方面接受微信公眾號的數(shù)據(jù)請求,一方面查詢數(shù)據(jù)庫提供相關數(shù)據(jù)。數(shù)據(jù)的收發(fā)都采用最基本的HTTP協(xié)議來實現(xiàn),只要做好數(shù)據(jù)格式的封裝和解析,同時注意相關appid的安全性驗證,就可以很好的完成相關功能。
(3)除了以上兩個子系統(tǒng)之外,微信公眾號的界面設置,比如菜單設置和自定義回復設置,也是本系統(tǒng)需要考慮的部分。在保證易用性的同時,做好相關的用戶引導,這樣才能提升用戶的使用體驗。
本系統(tǒng)設計了一個基于公眾號的高校通知平臺,它可以方便高校老師隨時隨地通過微信APP就可以查看校內(nèi)新聞和相關通知,極大的方便了教師的辦公,提升了學校整體的行政效率。本系統(tǒng)所使用到的技術主要包括python爬蟲,數(shù)據(jù)庫,基于PHP的web研發(fā)等,各個子系統(tǒng)間相互連接相互配合,就能保證整體系統(tǒng)的良好運作。
[1]蔡雯,翁之顥.微信公眾平臺:新聞傳播變革的又一個機遇——以“央視新聞”微信公眾賬號為例[J]. 新聞記者, 2013(7):40-44.
[2]熊暢.基于Python爬蟲技術的網(wǎng)頁數(shù)據(jù)抓取與分析研究[J]. 數(shù)字技術與應用, 2017(9):35-36.