李凌 蔡芳 武昌首義學院
為了方便管理校內外信息和發布新聞通知,大部分高校都有自己的內網系統。然而,現在高校教師因為教學任務繁重,空閑時間變得碎片化,手機就成為了教師們實際獲取信息的最佳工具。由于微信APP的普及,公眾號作為一個天然的信息發布中心,可以很好的實現高校通知平臺的相關功能,提高行政辦公的效率。
整個系統依托在騰訊公司的微信公眾號平臺下來實現,整體的系統架構設計如下圖所示。

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