Python抓取360手机市场APP信息并做简单分析

  初步学习了python的基本语法,然后结合项目写了一个爬虫程序,主要功能是爬取360应用市场的APP相关信息,这次简单介绍一下。

  程序主题包括一个程序启动类,一个写数据库类,一个360市场app的信息获取类,一个正则解析类,一个日志功能类,利用的是最基本的urllib库,没有使用开源的框架。其中日志功能类没有写好,但是在实际的应用过程中发现,会经常出现由于网络的波动影响到抓取以及特殊字符导致数据库写失败等问题,这个过程中,我都是手动重启的。如果把这些日志记录下来,然后针对相应的情况做自动重启处理,就比较不错。例如如果软件名称中存在比较特殊的字符。比如http://zhushou.360.cn/detail/index/soft_id/2916889这个页面中应用标题的引号,在写数据库的时候会提示1064: Youhave an error in your SQL syntax….,当时并没有注意,后来相关的错误提示显示出来的。

  由于性能的问题,我写的小程序爬了半个月,因为相关的应用,下载量,版本等相关信息在不断的变化,会与现在的数据有些许差异,但是一般差异不会太大,因此本文可以作为某些分析的参考。

  总共爬取的网页个数为320万个左右,有效页面个数为111万个左右,我是单线程的爬取速度是每秒在2-5个左右。如果要求一天之内爬完320万个网页,则需要每秒40个左右,而现有的开源爬虫框架据说有的可以支持每分钟5000个左右。这样快的速度一般是需要多线程的支持,需要引入消息队列机制。有的网站会限制请求速度(多个代理请求来解决)。

  下面对我爬取的数据库做一次简单的分析。

  数据库的总条目数量是1112499个,平台的应用每天都在增加,但基本的数量级是这个样子。

  360手机市场下载量过亿的应用目前统计到的为73个,如下图1、图2、图3所示:


图1


图2

 

图3

  让我比较意外的几个应用包括以下几个1、我查查;2、ChatON;3、书旗小说;4、Samsung PushService;5、Google 文字转语音。除了ChatON,其余最近都有更新。我们知道手机APP的更新是非常的频繁,如果近期没有更新,则说明,这款应用已经是昨日黄花了。

  表1是对数据库做了几次筛选之后的结果

      表1

总应用个数

1112499

下载量为0

339126

下载量<100

789330

下载量<1万

1058300

下载量>100万

3526

下载量>1亿

73

2016/04/01后更新

22372

 

  另外感到震惊的是,下载量为0 的应用有339126个,下载量小于100的应用有789330个,下载量小于10000的应用有1058300个。下载量大于100万的应用有3526个,下载量大于1000万的应用有582个。

  2016-04-01也就是愚人节之后有更新的软件个数为22372个,下载量大于5万的为22892,这两个数大致相当。

  图4、图5、图6列举了部分当时下载量为0的应用情况。


图4

图5

图6

  可以看到很多下载量很少的主要是一些英文的应用,虽然在大陆上外网需要翻墙,但是360手机市场还是将很多国外的应用收录了。比如Pandora作为美国第二大正版在线音乐提供商,下载之后,需要VPN为美国翻墙的网络才能用。这也是360手机市场能够拥有百万app的原因,我猜测360手机市场应该收录了google_play里面的大部分应用(没有验证过)。

  以上就是简单学习python后爬虫练习的情况。以后会根据情况采用一些框架,使得爬取的速度更快一些,更自动化一些。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村中少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值