基于爬虫的移动互联网应用监测分析系统研究

2015-10-12 08:05于世伟
电视技术 2015年13期
关键词:爬虫商店监测

王 跃,于世伟,路 博,金 桦

(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]等特定垂直主题,其内在技术应用场景需求差距巨大,若干企业通过市场调研等非技术手段定期发布的应用整体发展数据的监测颗粒度、监测频度也完全无法满足产业发展/管理需求。

本课题全面立足中国移动应用生态发展分裂实际,面向国内技术实现迥异的众多应用商店,创造性地提出一套完整的基于爬虫技术的移动互联网应用发展监测与分析系统方案,并基于该方案实现对我国移动应用发展态势的全面监测分析。

1 设计方案与关键点

迥异于全球移动应用市场的高度收敛,立足于我国移动应用生态高度分裂、技术实现差异巨大的实际情况,系统整体基于爬虫技术进行构建,并面向中国全部主要移动应用商店进行监测分析,从下至上分为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 方案部署与监测数据分析

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网络建设的快速推进,系统通过持续跟踪视频类应用下载规模变化将可以定量级别精确分析通信网络升级对我国整体应用产业影响,明晰勾勒以视频影音为代表的高流量应用市场的繁荣图景,进而支撑相关建设发展策略出台,推动加速通信网络、应用产业协同发展。

3 总结与展望

本文论述的基于爬虫技术的国内移动互联网应用发展监测与分析系统深度立足于中国移动应用生态高度分裂、应用商店技术实现各异的现实情况,基于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

猜你喜欢
爬虫商店监测
利用网络爬虫技术验证房地产灰犀牛之说
特色“三四五六”返贫监测帮扶做实做细
“剧场”商店
基于Python的网络爬虫和反爬虫技术研究
天边的白云商店
逛玩具商店
大数据环境下基于python的网络爬虫技术
无名火
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月