司凱威
國家新聞出版廣電總局293臺 河南省 鄭州市 451162
隨著移動互聯(lián)網(wǎng)數(shù)據(jù)流量資費的下降和智能終端的普及,通過移動視聽APP收聽收看網(wǎng)絡視聽節(jié)目逐漸成為廣大網(wǎng)民的選擇。截至2017年12月,我國手機網(wǎng)民規(guī)模達到7.53億,其中手機網(wǎng)絡視頻用戶達到5.49億。[1]與此同時,移動APP種類和數(shù)量也急劇增長。據(jù)工信部2017年9月發(fā)布數(shù)據(jù)顯示,境內(nèi)第三方應用商店移動應用數(shù)量近240萬款,中國區(qū)蘋果商店移動應用數(shù)量近170萬款,第三方應用商店分發(fā)數(shù)量超過7217億次。[2]
移動視聽APP在向廣大網(wǎng)民提供豐富的電影、電視劇、短視頻等節(jié)目直播、點播服務的同時,也出現(xiàn)了部分不法分子借助斗魚、抖音、快手等平臺違規(guī)傳播包含播暴力、淫穢、低俗等違規(guī)內(nèi)容的視聽節(jié)目,違反國家視聽節(jié)目的管理政策,危害青少年的身心健康成長。
為實現(xiàn)對移動視聽APP的全面監(jiān)管,需要對豌豆莢、安卓市場、iTunes、小米等應用市場和論壇的數(shù)據(jù)進行抓取、分析、研判。目前,該類應用市場和論壇均對其核心數(shù)據(jù)設計相應的保護措施。[3]單純的依靠人工或單個的爬蟲,難以全面、及時的排查移動視聽APP的變化情況,更無法承擔突發(fā)的監(jiān)管任務,因此,有必要引入云計算技術設計一套分布式的移動視聽APP監(jiān)管系統(tǒng)。
云計算主要是指用戶只需在投入少量管理或溝通的情況下,采用按量付費的方式獲取網(wǎng)絡、服務器、存儲、應用軟件、服務等可配置的資源。[4]其最大的優(yōu)勢在于只需付出較低廉的價格,即可獲得更高可靠性、更高安全性,更高性價比的公用化的互聯(lián)網(wǎng)基礎設施服務,用戶無需投入巨額的資金用于購置設備和建造環(huán)境。目前,在政治、經(jīng)濟、金融、民生等領域應用比較廣泛的有亞馬遜、阿里云、百度云等。
在移動視聽APP監(jiān)管系統(tǒng)設計過程中,受限于現(xiàn)有機房空間、運維能力、網(wǎng)絡帶寬等因素,在承擔緊急突發(fā)監(jiān)管任務時,網(wǎng)絡爬蟲、爬蟲管理、頁面分析、數(shù)據(jù)下載等服務器均需要較大的網(wǎng)絡帶寬和計算能力,需在短時間內(nèi)完成相關程系統(tǒng)的擴展。因此,選擇云服務器作為系統(tǒng)的主用設備。
為兼顧系統(tǒng)的可擴展性和排查數(shù)據(jù)的安全性,移動視聽APP監(jiān)管系統(tǒng)設備包括云端和本地端設備。云服務器上安裝的爬蟲程序?qū)ν愣骨v、360手機助手等應用市場傳播的移動視聽APP進行抓取、分析、下載,并將結果經(jīng)過通信服務器與本地服務器進行通信。本地服務器主要負責相關任務的管理、數(shù)據(jù)的存儲、驗證等工作。根據(jù)功能的不同可以分為網(wǎng)絡爬蟲、頁面分析、數(shù)據(jù)下載、操作中心、網(wǎng)絡通信等模塊。如圖1所示。
圖1 系統(tǒng)組成示意圖
網(wǎng)絡爬蟲模塊由爬蟲服務器、爬蟲調(diào)度、IP地址池服務器等組成,主要負責從移動APP應用市場抓取數(shù)據(jù)。爬蟲調(diào)度服務器主要是對網(wǎng)絡、計算、IP地址等資源進行管理。爬蟲服務器針對豌豆莢、APPStore等應用市場頁面特點智能抓取數(shù)據(jù)。IP地址池服務器是為爬蟲提供可用的IP代理地址池。并爬蟲中加入有模擬瀏覽器的頭文件代碼等,以應對應用市場設計的反爬蟲安全策略。在抓取的過程中,爬蟲調(diào)度服務器實時監(jiān)控各個爬蟲的運行狀態(tài),傳送給通訊服務器,一旦發(fā)現(xiàn)異常,第一時間通知管理員進行處理。
頁面分析模塊主要是對爬蟲抓取的移動APP信息頁面中的軟件開發(fā)機構、更新版本、更新日期、使用簡介、用戶評價等內(nèi)容進行抽取。通過中文分詞和非關鍵詞過濾模塊,剔除頁面中非重要內(nèi)容,然后按照檢索要素與原有APP信息進行排重,沒有發(fā)生重復則進行上報相關的內(nèi)容。頁面分析主要是對數(shù)據(jù)進行初步的分析后,把相關的進行整理后傳送給后臺服務器進行處理,通過FTP服務器的形式進行傳輸相關的文件,保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性。頁面分析模塊與本地服務器的分級處理模塊密切配合,能夠?qū)崿F(xiàn)對頁面內(nèi)容的分級。
數(shù)據(jù)下載模塊主要是移動視聽APP的頁面和APK文件進行下載,形成完整的數(shù)據(jù)資料庫。其下載文件使用文件名和MD5算法進行唯一性標識,便于對變動情況進行動態(tài)的監(jiān)測。云服務器設置有專門的數(shù)據(jù)下載服務,并將下載數(shù)據(jù)實時同步到本地服務器中,保證數(shù)據(jù)的完整性和安全性。
通訊模塊主要負責云服務器和本地服務器之間數(shù)據(jù)交互。相互之間的下載數(shù)據(jù)采用json協(xié)議的傳輸,其他通訊采用加密協(xié)議傳輸。數(shù)據(jù)通訊模塊不斷的保持本地服務器和服務器的之間的通訊,保障實時返回云服務器的運行狀態(tài)和爬蟲的抓取狀態(tài)。為保證信息渠道的暢通,對通訊內(nèi)容實行分級管理,對于發(fā)現(xiàn)的違規(guī)情況能夠使用高優(yōu)先級進行通訊。
管理中心是人機交互的綜合管理平臺。操作人員能夠查看各服務器的運行狀態(tài)、遠程調(diào)度各個服務器資源,查看各個任務的運行狀態(tài),查詢每個APK的變化情況、節(jié)目情況、受眾情況。
安全模塊設計有相應的安全策略、防火墻,同時配合爬蟲端和數(shù)據(jù)段的有效隔離,防止內(nèi)部數(shù)據(jù)被竊取或者泄露等情況的發(fā)生。同時引入入侵檢測設備,防止內(nèi)部數(shù)據(jù)的泄露。
(1)管理人員在接到移動APP的監(jiān)管任務后,通過管理中心配置爬蟲服務器。
(2)用戶通過操作界面向下發(fā)相關的指令,如果有需要設計爬蟲模板,或者進行合理化的配置,調(diào)度中心根據(jù)相關的內(nèi)容進行處理,調(diào)用爬蟲服務器對相關的數(shù)據(jù)進行處理。
(3)爬蟲根據(jù)用戶指令到相應的應用市場或者服務器下載指定的頁面,推送到頁面處理服務器,同時將相關的數(shù)據(jù)檢索和相關的數(shù)據(jù)經(jīng)過通信服務器,傳送到本地服務器中。
(4)抓取的頁面經(jīng)過關鍵詞比對技術,進行定位和分析,推送給工作人員按照緊急程度進行處理。
(5)用戶連接安卓和蘋果手機,根據(jù)系統(tǒng)提示,校對相關信息,排查是否包含違規(guī)節(jié)目內(nèi)容,形成最終的數(shù)據(jù)上報功能。
(6)系統(tǒng)根據(jù)用戶的設定自動下載相關的APK文件進行保存,并將相關的結果,推送給本地服務器進行處理,供用戶使用。分布式移動視聽APP監(jiān)管系統(tǒng)的系統(tǒng)運行流程,如圖2所示。
圖2 系統(tǒng)組成示意圖
分布式移動視聽APP監(jiān)管系統(tǒng)在設計的過程中主要采用了分布式爬蟲、反爬蟲、源文件下載等相關技術。
采用的Redis分布式爬蟲技術,是比較成熟的爬蟲技術,經(jīng)過簡單的配置之后,就可以進行擴展相應的爬蟲資源。Redis分布式爬蟲可以在發(fā)生應急任務的時候,通過簡單的增加爬蟲服務器的數(shù)量,進行簡單的部署即可完成排查范圍的不斷增加。
在該系統(tǒng)中使用的反爬蟲技術主要有模擬瀏覽器登陸,IP地址代理池等相關的技術手段,同時加入有瀏覽器頭文件。采用隨機化的爬蟲策略,能夠最大限度的避免被系統(tǒng)屏蔽。
采用http下載的方式,間隔一定的時間對相關的安裝文件進行下載,可以有效防止反爬蟲的使用。同時采用了MD5的比較技術,數(shù)據(jù)庫中存儲有本地APP源文件的MD5值,將下載的數(shù)據(jù)及時進行比較,避免現(xiàn)象的發(fā)生。將軟件名、開發(fā)機構、MD5等相關信息結合起來就可以得到一個比較完整的軟件表庫。
通過對基于云計算爬蟲的探討,可以看出,采用云端+本地的分布式爬蟲抓取策略,能夠最大限度的發(fā)揮云端的可擴展性和本地的數(shù)據(jù)安全的程度,保障各個方面的系統(tǒng)穩(wěn)定運行,實現(xiàn)了系統(tǒng)設計的各個目標。