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