王 躍,于世偉,路 博,金 樺
(1. 工業和信息化部電信研究院,北京 100037;2.大唐軟件技術股份有限公司,北京 100083)
基于爬蟲的移動互聯網應用監測分析系統研究
王 躍1,于世偉2,路 博1,金 樺1
(1. 工業和信息化部電信研究院,北京 100037;2.大唐軟件技術股份有限公司,北京 100083)
移動互聯網應用已超越互聯網與通信領域范疇,快速向智能電視等新型智能硬件領域延伸,當前國內外移動應用生態爆發式增長,而國內應用渠道分散且良莠不齊,立足于我國移動應用生態發展分裂實際,面向國內技術實現迥異的眾多應用商店提出一套完整的基于爬蟲技術的移動互聯網應用發展監測與分析系統方案,基于Nutch開源爬蟲平臺在動態感知獲取國內總體應用生態發展/運行態勢過程中研究提出并解決一系列關鍵技術挑戰,監測數據經進一步挖掘分析輸出若干分析成果,準確全面實時揭示我國移動應用產業整體發展狀況,有效形成面向我國整體移動應用發展的深度監測分析能力。
移動互聯網應用;應用商店;網絡爬蟲;監測分析
移動互聯網時代的到來引發了移動應用生態的爆發型擴張,創新應用規模涌現,截至2014年上半年,蘋果、谷歌、微軟3個官方原生移動互聯網應用商店的應用總數達300萬,其中蘋果突破120萬,谷歌突破150萬,微軟達30萬。與此同時,應用生態供給端的繁榮引爆了全球移動互聯網用戶應用消費市場,在應用下載規模方面,截至2014年4月,全球應用商店超過160家,應用下載規模累計超過6 000億次,其中僅蘋果AppStore累計下載量即超過750億次,每半年下載量超過100億次,而谷歌應用商店繼于2013年8月實現月下載規模超過蘋果后,其2014年第一季度下載量更達到蘋果的1.5倍,蘋果、谷歌兩大商店占據原生商店下載次數的95%,在使用時長方面,移動App占據了大部分移動終端上網時長,以美國為例,美國消費者86%的移動端上網時間消耗在移動App上,而在Web上的耗時僅為14%[1],在流量消耗方面,移動App流量使用已經超過移動網頁的6倍。
中國是僅次于美國的全球第二大移動應用消費市場,應用程序商店這一蘋果開創的全型業態已成為中國8.7億移動互聯網用戶的匯聚中心與海量數據及服務的核心承載平臺,與全球市場不同,中國移動互聯網應用生態整體并不依賴于谷歌和蘋果兩大應用商店巨頭,而是形成以本土第三方應用商店為主導的發展格局,目前已擁有超過50家[2]第三方應用商店,應用規模累計接近400萬個,下載規模超過3 000億次,開發者超過40萬人。
中國應用商店運營主體高度分裂,而應用程序商店廣覆蓋、高便捷、高價值的特性決定了其作為“新型管道”繼傳統移動通信管道后,已超越單純的商業范疇,成為支撐整體產業發展的又一重要新型基礎設施,構建移動互聯網應用發展監測分析系統,感知重要基礎性應用服務發展/運行情況,打造形成面向我國整體移動應用發展的深度監測分析能力已成為當前切實提升中國信息通信產業發展/管理水平的迫切需求與重要高效舉措。當前從全球范圍看,App Annie[3]、AppShopper[4]等公司已涉足該領域,但其技術方案主要立足于高度收斂于谷歌、蘋果兩大商店的全球市場,更多依賴于從客戶端獲取信息數據;從國內范圍看,尚未觀察到專門定位于面向整體移動應用生態監測分析的系統及相關技術方案,既有爬蟲應用或定位于搜索引擎,或定位于輿情[5]、旅游[6]等特定垂直主題,其內在技術應用場景需求差距巨大,若干企業通過市場調研等非技術手段定期發布的應用整體發展數據的監測顆粒度、監測頻度也完全無法滿足產業發展/管理需求。
本課題全面立足中國移動應用生態發展分裂實際,面向國內技術實現迥異的眾多應用商店,創造性地提出一套完整的基于爬蟲技術的移動互聯網應用發展監測與分析系統方案,并基于該方案實現對我國移動應用發展態勢的全面監測分析。
迥異于全球移動應用市場的高度收斂,立足于我國移動應用生態高度分裂、技術實現差異巨大的實際情況,系統整體基于爬蟲技術進行構建,并面向中國全部主要移動應用商店進行監測分析,從下至上分為5個具體技術層面,即采集子層、適配子層、數據子層、服務子層和應用子層,其中爬蟲系統與適配子層共同實現面向全部移動應用的監測功能,服務子層與應用子層共同完成面向移動應用的分析展現功能,因此系統自上而下又可分為三大層面,即分析展現層、數據層、監測層,如圖1所示。

圖1 系統總體架構圖
1.1 系統監測層
爬蟲系統是整個應用監測分析系統的基礎與核心,其根據一定的爬取規則,深入各應用商店爬取各類指標數據提供給采集適配層進行統一適配。
網絡爬蟲組件使用可擴展的爬蟲池對國內外知名原生應用程序商店進行關鍵數據獲取,如AppStore、Googleplay、WindowsPhone、Getjar、移動MM、騰訊應用中心、91助手等,總體基于開源的Nutch技術架構,主要執行流程是一個基于初始URL種子不斷擴展深入的迭代過程,在每次迭代的過程中,伴隨著新的子層URL的不斷發現、解析和入庫,最終采集獲取全部信息數據。
原型的開源Nutch[7]系統在監測國內大量技術實現迥異的應用商店時面臨一系列技術難題,國內大部分應用商店中均存在大量互無關聯的應用App頁面,甚至存在根本無法通過鏈接訪問的一批App頁面孤島,簡單以各商店若干URL種子為源頭并采用Nutch自帶深度優先搜索算法在爬取國內應用商店時僅能獲取規模極小的信息樣本,同時其漫長的爬取周期完全無法解決實時性監測問題。為全面監測獲取國內應用商店整體信息數據,基于國內商店迥異的實際技術情況,應用監測分析系統創造性地發展出廣度爬取與定向爬取兩大功能組件,并將獲取應用信息的步驟拆分為靜態信息與動態信息兩大過程。
由于國內應用生態規模巨大,更新獲取全部應用頁面信息的周期極長,靜態信息主要指應用App頁面地址、應用名稱、版本、開發者等長期固定信息,靜態信息爬取周期時間要求低,但全面性要求極高,為應對大量應用商店中存在的應用孤島問題,創新引入源URL獲取算法,首先在全球規模最大的谷歌應用商店中獲取一批全面代表不同用戶歡迎程度的應用清單,并據此搜索映射成國內50余家應用商店的初始URL,在此基礎上進一步基于Nutch進行廣度優先實現,成功獲取到國內大部分App頁面數據,與此同時,國內應用商店還存在若干從首頁逐頁展現App頁面的技術實現,面對這類應用商店系統采用定制的定向翻頁算法,獲取全部應用靜態信息。
動態信息指下載量、價格等App頁面中快速變化的相關數據,為獲取這類信息,系統基于靜態信息中獲取的全部App頁面URL清單基于定向爬蟲高速定向更新數據。為確保實時性加速爬取進程,定向爬蟲采用多任務爬取,但為防止觸發商店反爬策略,指向同一個應用商店資源的URL列表僅被分配到同一個爬取任務中,以減少大量線程對單一主機同時進行爬取的可能性,然而面對國內幾百萬應用動態信息每日更新,動態信息實時性仍難以完全保證,與此同時各商店反爬策略亦被頻繁觸發,為解決此問題,系統采用間接機制通過對爬取門限容忍度較高的第三方搜索網站快照等信息獲取數據,同時部分引入代理機制對重點信息進行短期密集爬取,基本解決了國內應用生態監測的實時性難題。
統一適配平臺通過監控爬蟲程序輸出的數據緩存(包括文件、數據庫或者消息)接收來自爬蟲組件的源數據,同時使用可擴展的適配模板群來管理模板,對國內50余應用商店采集到的數據分別采用專門格式模板進行適配,以統一規范的格式錄入數據庫。統一適配組件的存在將復雜而多變的數據適配過程從爬蟲組件中分離出來,從而有效地提高了爬蟲組件的爬取速度,提升了系統容錯率。
1.2 系統數據層
數據層獲取由系統監測層適配處理后的數據,并對數據進行持久化操作,采用分析庫、實時庫、高速緩存以及索引庫三類數據庫,其中分析庫基于HBASE儲存海量的原始數據與基礎支撐數據,實時庫基于MYSQL以只讀形式面向上層服務進行實時查詢與報表展現,儲存基礎支撐數據、分析結果數據與報表數據,引入內存庫基于Redis在分析程序對原始數據進行分析的時候提供高速緩存用來加速分析過程[8],并同時提供一個數據索引服務,以加速面向幾百萬應用信息的頁面查詢響應。
存儲于監測分析系統3類數據庫中的數據內容類型主要分為爬蟲與數據分析類、初級數據類、高級數據類和基礎支撐類4類,其中:
1)爬蟲與數據分析類主要指系統運行所依賴的一系列基本數據,包括爬取任務數據、反編譯數據和初步統計數據。其中,爬取任務數據主要包括目標應用商店基本情況、爬取策略頻率等任務本身配置數據;反編譯應用數據主要指反編譯部分樣本應用獲取的深度監測數據;初步統計數據指經適配處理后的爬取數據,及進一步簡單分析生成的數據,如應用總體規模、下載量排名等相關數據。
2)初級數據類指爬蟲與數據分析類數據經進一步處理分析后接用于系統展示的數據,包括應用分類、應用排名、下載情況、使用情況等。
3)高級數據類指爬蟲與數據分析類與初級數據類數據經深度挖掘處理分析得到的深層次分析數據,包括應用對比、應用引用率、發展態勢預測等深度信息。
4)基礎支撐類指系統管理維護相關的基礎數據,包括字典數據、用戶數據和輔助數據等。
1.3 分析展現層
分析展現層的核心是服務子層,其基于數據子層和適配子層,為應用子層提供服務。服務子層從數據子層獲取數據,其索引組件基于數據庫數據建立和維護索引,形成索引數據庫,并同時展開挖掘分析,包括數據分析和數據挖掘兩大類。其中,數據分析主要對基礎數據展開簡單分析、匯總計算以及排名信息統計,如基于應用商店的應用下載量排名、應用主題分類和應用階段下載次數統計等;數據挖掘基于半監督[9]的機器學習方法進行學習,獨立于普通的分析,對數據進行深度的分析和挖掘,以得出更加深層的結論,基于數據倉庫工具Hive實現,目前主要面向如應用替換率、各類型應用開發者收益、移動應用發展趨勢等數據進行復雜的挖掘分析。與此同時,服務子層也與適配子層進行交互,通過采集調度組件采用不同策略調度采集程序開展數據采集分析。服務子層面向應用子層提供各種展現模式支撐服務,并將應用子層的動態配置及相應操作信息向下推送到適配子層,以控制整個爬取過程。
應用層的主要功能是Web展現,提供給用戶一個可感知和可操作的視圖界面,用戶可根據不同的功能模塊實現相應的業務操作,系統設計的功能模塊主要包括應用檢索功能、應用對比功能、系統管理功能、數據管理功能、應用高度分析功能、用戶管理功能等。應用層的另一個重要組成部分是公共組件,包括統一登錄、報表引擎和可配置樹等。公共組件為每個功能模塊執行輔助工作,起著必不可少的作用,其中統一登錄是用戶登錄系統的驗證體系,用戶通過統一登錄這一入口進入系統,以實現根據不同用戶的權限限定用戶可執行的操作;報表引擎負責報表展現,是報表功能的重要組成部分;可配置樹組件用于為用戶提供友好的操作界面,用戶可通過配置樹的相關選項進行相應的需求查詢等操作。
2.1 方案部署
基于爬蟲技術的國內移動互聯網應用發展監測與分析系統部署架構如圖2所示。

圖2 系統部署架構圖
系統總體分為4個層次模塊,即Web服務器、接口服務器、數據庫服務器和分布式集群:1)Web服務器面向網絡用戶,以Tomcat為服務容器,為用戶提供瀏覽、查詢、索引以及報表等前臺界面的所有功能服務。2)接口服務器面向其他系統的接口使用用戶,為其他系統提供數據訪問接口。3)數據庫服務器用于移動互聯網應用數據以及分析挖掘數據的持久化存儲,其使用Redhad High-Availability技術實現雙機虛擬化,包括虛擬IP以及虛擬硬盤等服務,一方面可以在數據庫服務器故障時提供容錯,提供必要的健壯性,另一方面可以進行日常的數據備份,以便于數據恢復。4)分布式集群是系統分布式管理核心內容所在,使用一個管理節點和10個從節點實現主從式的分布式結構。在集群上部署了用于分布式存儲與計算的Hadoop框架,并基于Hadoop的分布式服務部署了分布式數據庫Hbase、數據倉庫工具Hive以及用于爬蟲系統的Nutch搜索引擎工具。
系統在軟硬件結構的部署上遵循分布式系統設計,合理安排任務分工和計算負載,實現高效率與可靠性的有機結合,能夠滿足國內移動互聯網應用發展監測與分析需求。
2.2 監測數據成果分析
自基于爬蟲技術的國內移動互聯網應用發展監測與分析系統部署以來,截至2014年8月已對國內外41個應用商店進行爬取和分析,爬取含重復的應用數量高達6 091 037個,解析開發者787 923家,去重后應用規模等各項數據基本符合各商店公布的整體數據,并在此基礎上初步對我國移動互聯網應用生態開展進一步深度分析探索。
1)應用量分類統計
在國內移動互聯網應用商店中,各類應用的數量及其比例數據如表1所示。

表1 應用量分類統計表
根據上表統計結果可知,當前單機游戲、工具、生活、社交以及安全類、影音視頻類應用占據較大比例,具有較高的熱門程度;而如健康、圖書、效率之類的應用則相對較少,具有較低的關注程度。
2)分類應用商店應用統計
應用商店由于其形成過程的不同,可以分為互聯網類、巨頭類、設備廠商以及運營商4類,其應用量分布如表2所示。

表2 分類應用商店應用統計(應用數/去重后應用總規模)
由以上分析可知,在應用的整體分布中,互聯網類和巨頭類的應用商店占比絕大多數應用,而設備廠商類和運營商類商店應用規模占比極小。
3)應用商店下載量分布
各應用商店的下載量及其在總下載量的比例見表3。

表3 應用商店下載量分布
由表3可知,商店1當前在國內50余家應用商店的競爭中已取得相當競爭優勢,而若進一步結合時間曲線分析將會發現,商店5上升速度極快,將很快成為國內應用商店的另一主要參與者。
此外,系統還可進一步提取分析平均下載量、應用商店與應用分類分布、開發者分布、應用商店排名、重復應用統計以及優先上線統計等重要移動應用生態發展數據,結合時間維度分析其可進一步深度揭示移動互聯網整體技術產業演進規律與趨勢,例如:隨著當前我國LTE網絡建設的快速推進,系統通過持續跟蹤視頻類應用下載規模變化將可以定量級別精確分析通信網絡升級對我國整體應用產業影響,明晰勾勒以視頻影音為代表的高流量應用市場的繁榮圖景,進而支撐相關建設發展策略出臺,推動加速通信網絡、應用產業協同發展。
本文論述的基于爬蟲技術的國內移動互聯網應用發展監測與分析系統深度立足于中國移動應用生態高度分裂、應用商店技術實現各異的現實情況,基于Nutch開源爬蟲平臺創新地發展出廣度爬取與定向爬取兩大功能組件,并將獲取應用信息的步驟拆分為靜態信息與動態信息兩大過程,在獲取靜態信息、動態信息技術實現中,創新地提出并解決了一系列技術問題,在此基礎上通過對50余家國內商店的分別統一適配,輸出儲存于三大數據庫中的四類數據,并進一步挖掘分析展現,監測結果符合產業界實際,文中進一步基于監測數據給出了面向我國移動互聯網應用生態進一步深度分析的若干成功案例。
系統當前在數據挖掘方面功能仍不完善,既有挖掘程度較淺,特別是我國的50余家商店發展良莠不齊,對各應用商店本身數據真實準確性挖掘分析并剔除壞數據是確保系統真正科學有效支撐中國移動互聯網應用生態發展/管理的迫切要義。此外,HTML5[10]應用正處于興起的初級階段,下一步系統須在面向Web應用的監測方面全面升級能力,為未來潛在的Web應用爆發做好準備。
[1] KAPPS S. App solidify leadership six years into the mobile revolution. Flurry Insights[EB/OL].[2015-01-01].http://www.flurry.com/bid/109749/Apps-Solidify-Leadership-Six-Years-into-the-Mobile-Revolution#.VL5hR9yUd2w.
[2] 許志遠,李婷,王躍. 2014年移動互聯網白皮書[EB/OL].[2015-01-20].http://www.miit.gov.cn/n11293472/n11293832/n15214847/n15218338/.
[3] App annie corporation official site[EB/OL].[2015-01-10].http://www.appannie.com.
[4] Appshopper corporation official site[EB/OL].[2015-01-10].http://appshopper.com.
[5] 王旭.互聯網輿情監控系統中聚焦爬蟲的設計與實現[D].北京:北京郵電大學,2011.
[6] 徐顯煉.分布式在線旅游搜索爬蟲系統設計與實現[D].北京:北京郵電大學,2013.
[7] Apache nutch official site[EB/OL].[2015-01-10].http://nutch.apache.org/.
[8] 楊艷,李煒.王純內存數據庫在高速緩存方面的應用[J].現代電信科技,2011(12):16-18.
[9] 王理華.半監督學習及其在數據挖掘中的應用[J].電腦知識與技術,2011(36):25-27.
[10]工業和信息化部電信研究院.新一代移動Web技術白皮書(2012年)[EB/OL].[2015-01-10].http://www.miit.gov.cn/n11293472/n11293832/n15214847/n15218338/15225018.html.
王 躍(1983— ),碩士,主研移動互聯網、數據網絡規劃、網絡流量分析等;
于世偉(1986— ),學士,主研移動互聯網、信息系統技術架構等;
路 博(1986— ),碩士,主研移動互聯網應用生態、關鍵服務、新興技術等;
金 樺(1985— ),博士,主研城市信息化、智慧城市、移動互聯網等。
責任編輯:許 盈
Research on Domestic Mobile Internet Application Monitoring and Analysis System Based on Crawler Technology
WANG Yue1,YU Shiwei2,LU Bo1,JIN Hua1
(1.ChinaAcademyofTelecommunicationResearchofMIIT,Beijing100037,China;2.DatangSoftwareTechonlogyCompany,Beijing100083,China)
Mobile internet applications have gone beyond the scope of internet and communication fields, which are now widely used in smart TV and many other new intelligent hardware areas. At the same time, the mobile internet application ecology is in the explosive growth of scale in and abroad, howerver, domestic application channels are dispersed, and the good and bad are mixed together. Based on the dispersed ecology reality, an intact mobile internet application monitoring and analysis system solution are raised to crawl and extract information from major domestic appstores with different technical designs. Based on the Nutch open source platform, the system implementation successfully solves a series of technical challenges in the process of dynamic sensing development and operation of domestic overall application ecology. Further analysis and deep mining are carried out based on collected data, which accurately and comprehensively reveals the whole development stauts of China mobile application industry in real time.
mobile internet applications; App store; Web crawler; monitoring and analysis
【本文獻信息】王躍,于世偉,路博,等.基于爬蟲的移動互聯網應用監測分析系統研究[J].電視技術,2015,39(13).
國家“863”計劃項目(2012ZX03002018;2013ZX03002010)
TN915;TP3
A
10.16280/j.videoe.2015.13.019
2015-05-08