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