分析了豌豆荚万款全是万万没想到
使用Scrapy爬取豌豆荚全网70000App,并进行探索性分析。若对数据抓取部分不感兴趣,可以直接下拉到数据分析部分。
一、分析背景
之前我们使用了Scrapy爬取并分析了酷安网6000App,为什么这篇文章又在讲抓App呢?
因为我喜欢折腾App,哈哈。当然,主要是因为下面这几点:
第一、之前抓取的网页很简单
在抓取酷安网时,我们使用for循环,遍历了几百页就完成了所有内容的抓取,非常简单,但现实往往不会这么easy,有时我们要抓的内容会比较庞大,比如抓取整个网站的数据,为了增强爬虫技能,所以本文选择了豌豆荚这个网站。
目标是:爬取该网站所有分类下的App信息并下载App图标,数量在70,000左右,比酷安升了一个数量级。
第二、再次练习使用强大的Scrapy框架
之前只是初步地使用了Scrapy进行抓取,还没有充分领会到Scrapy有多么牛逼,所以本文尝试深入使用Scrapy,增加随机UserAgent、代理IP和图片下载等设置。
第三、对比一下酷安和豌豆荚两个网站
相信很多人都在使用豌豆荚下载App,我则使用酷安较多,所以也想比较一下这两个网站的App特点。
话不多说,下面开始抓取流程。
1。分析目标
首先,我们先来了解一下要抓取的豌豆荚网页是什么样的,可以看到该网站上的App分成了很多类,包括:应用播放、系统工具等,一共有14个大类别,每个大类下又细分了多个小类,例如,影音播放下包括:视频、直播等。
点击视频进入第二级子类页面,可以看到每款App的部分信息,包括:图标、名称、安装数量、体积、评论等。
接着,我们可以再进入第三级页面,也就是每款App的详情页,可以看到多了下载数、好评率、评论数这几样参数,抓取思路和第二级页面大同小异,同时为了减小网站压力,所以App详情页就不抓取了。
所以,这是一个分类多级页面的抓取问题,依次抓取每一个大类下的全部子类数据。
学会了这种抓取思路,很多网站我们都可以去抓,比如很多人爱爬的豆瓣电影也是这样的结构。
2。分析内容
数据抓取完成后,本文主要是对分类型数据的进行简单的探索性分析,包括这么几个方面:
下载量最多最少的App总排名;
下载量最多最少的App分类子分类排名;
App下载量区间分布;
App名称重名的有多少;
和酷安App进行对比。
3。分析工具
Python
Scrapy
MongoDB
Pyecharts
Matplotlib
二、数据抓取
1。网站分析
我们刚才已经初步对网站进行了分析,大致思路可以分为两步,首先是提取所有子类的URL链接,然后分别抓取每个URL下的App信息就行了。
可以看到,子类的URL是由两个数字构成,前面的数字表示分类编号,后面的数字表示子分类编号,得到了这两个编号,就可以抓取该分类下的所有App信息,那么怎么获取这两个数值代码呢?
回到分类页面,定位查看信息,可以看到分类信息都包裹在每个li节点中,子分类URL则又在子节点a的href属性中,大分类一共有14个,子分类一共有88个。
到这儿,思路就很清晰了,我们可以用CSS提取出全部子分类的URL,然后分别抓取所需信息即可。
另外还需注意一点,该网站的首页信息是静态加载的,从第2页开始是采用了Ajax动态加载,URL不同,需要分别进行解析提取。
2。Scrapy抓取
我们要爬取两部分内容,一是APP的数据信息,包括前面所说的:名称、安装数量、体积、评论等;二是下载每款App的图标,分文件夹进行存放。
由于该网站有一定的反爬措施,所以我们需要添加随机UA和代理IP,关于这两个知识点,我此前单独写了两篇文章进行铺垫,传送门:
Scrapy中设置随机UserAgent的方法汇总
Python爬虫的代理IP设置方法汇总
这里随机UA使用scrapyfakeuseragent库,一行代码就能搞定,代理IP直接上阿布云付费代理,几块钱搞定简单省事。
下面,就直接上代码了:
(1)items。py
(2)middles。py
中间件主要用于设置代理IP。
(3)。py
该文件用于存储数据到MongoDB和下载图标到分类文件夹中。
存储到MongoDB:
按文件夹下载图标:
(4)settings。py
(5)wandou。py
主程序这里列出关键的部分:
这里,首先定义几个URL,包括:分类页面、子分类首页、子分类AJAX页,也就是第2页开始的URL,然后又定义了一个类Getcategory()专门用于提取全部的子分类URL,稍后我们将展开该类的代码。
程序从startrequests开始运行,解析首页获得响应,调用getcategory()方法,然后使用Getcategory()类中的parsecategory()方法提取出所有URL,具体代码如下:
这里,除了分类名称catename可以很方便地直接提取出来,分类编码和子分类的子分类的名称和编码,我们使用了getcategorycode()等三个方法进行提取。提取方法使用了CSS和正则表达式,比较简单。
最终提取的分类名称和编码结果如下,利用这些编码,我们就可以构造URL请求开始提取每个子分类下的App信息了。
接着前面的getcategory()继续往下写,提取App的信息:
这里,依次提取出全部的分类名称和编码,用于构造请求的URL。由于首页的URL和第2页开始的URL形式不同,所以使用了if语句分别进行构造。接下来,请求该URL然后调用self。parse()方法进行解析,这里使用了meta参数用于传递相关参数。
最后,parse()方法用来解析提取最终我们需要的App名称、安装量等信息,解析完成一页后,page进行递增,然后重复调用parse()方法循环解析,直到解析完全部分类的最后一页。
最终,几个小时后,我们就可以完成全部App信息的抓取,我这里得到73,755条信息和72,150个图标,两个数值不一样是因为有些App只有信息没有图标。
图标下载:
下面将对提取的信息,进行的数据分析。
三、数据分析
1。总体情况
首先来看一下App的安装量情况,毕竟70000多款App,自然很感兴趣哪些App使用地最多,哪些又使用地最少。
代码实现如下:
看了上图,有两个没想到:
排名第一的居然是一款手机管理软件对豌豆荚网上的这个第一名感到意外,一是,好奇大家都那么爱手机清理或者怕中毒么?毕竟,我自己的手机都裸奔了好些年;二是,第一名居然不是鹅厂的其他产品,比入微信或者QQ。
榜单放眼望去,以为会出现的没有出现,没有想到的却出现了前十名中,居然出现了书旗小说、印客这些比较少听过的名字,而国民App微信、支付宝等,甚至都没有出现在这个榜单中。
带着疑问和好奇,分别找到了腾讯手机管家和微信两款App的主页:
腾讯手机管家下载和安装量:
微信下载和安装量:
这是什么情况?
腾讯管家3亿多的下载量等同于安装量,而微信20多亿的下载量,只有区区一千多万的安装量,两组数据对比,大致反映了两个问题:
要么是腾讯管家的下载量实际并没有那么多?
要么是微信的下载量写少了?
不管是哪个问题,都反映了一个问题:该网站做得不够走心啊。
为了证明这个观点,将前十名的安装量和下载量都作了对比,发现很多App的安装量都和下载量是一样的,也就是说:这些App的实际下载量并没有那么多,而如果这样的话,那么这份榜单就有很大水分了。
难道,辛辛苦苦爬了那么久,就得到这样的结果?
不死心,接着再看看安装量最少的App是什么情况,这里找出了其中最少的10款:
扫了一眼,更加没想到了:QQ音乐竟然是倒数第一,竟然只有3次安装量!
确定这和刚刚上市、市值千亿的QQ音乐是同一款产品?
再次核实了一下:
没有看错,是写着3人安装!
这是已经不走心到什么程度了?这个安装量,鹅厂还能用心做好音乐?
说实话,到这儿已经不想再往下分析下去了,担心爬扒出更多没想到的东西,不过辛苦爬了这么久,还是再往下看看吧。
看了首尾,我们再看看整体,了解一下全部App的安装数量分布,这里去除了有很大水分的前十名App。
很惊讶地发现,竟然有多达67,195款,占总数的94的App的安装量不足1万!
如果这个网站的所有数据都是真的话,那么上面排名第一的手机管家,它一款就差不多抵得上这6万多款App的安装量了!
对于多数App开发者,只能说:现实很残酷,辛苦开发出来的App,用户不超过1万人的可能性高达近95。
代码实现如下:
2。分类情况
下面,我们来看看各分类下App情况,不再看安装量,而看数量,以排出干扰。
可以看到14个大分类中,每个分类的App数量差距都不大,数量最多的生活休闲是摄影图像的两倍多一点。
接着,我们进一步看看88个子分类的App数量情况,筛选出数量最多和最少的10个子类:
可以发现两点有意思的现象:
收音机类别App数量最多,达到1,300多款这个很意外,当下收音机完全可以说是个老古董了,居然还有那么人去开发。
App子类数量差距较大最多的收音机是最少的动态壁纸近20倍,如果我是一个App开发者,那我更愿意去尝试开发些小众类的App,竞争小一点,比如:背单词、小儿百科这些。
看完了总体和分类情况,突然想到一个问题:这么多App,有没有重名的呢?
惊奇地发现,叫一键锁屏的App多达40款,这个功能App很难再想出别的名字了么?现在很多手机都支持触控锁屏了,比一键锁屏操作更加方便。
接下来,我们简单对比下豌豆荚和酷安两个网站的App情况。
3。对比酷安
二者最直观的一个区别是在App数量上,豌豆荚拥有绝对的优势,达到了酷安的十倍之多,那么我们自然感兴趣:豌豆荚是否包括了酷安上所有的App?
如果是,你有的我都有,你没有的我也有,那么酷安就没什么优势了。统计之后,发现豌豆荚仅包括了3,018款,也就是一半左右,剩下的另一半则没有包括。
这里面固然存在两个平台上App名称不一致的现象,但更有理由相信酷安很多小众的精品App是独有的,豌豆荚并没有。
代码实现如下:
接下来,我们看看所包含的App当中,在两个平台上的下载量是怎么样的:
可以看到,两个平台上App下载数量差距还是很明显。
最后,我面再看看豌豆荚上没有包括哪些APP:
可以看到很多神器都没有包括,比如:RE、绿色守护、一个木函等等。豌豆荚和酷安的对比就到这里,如果用一句话来总结,我可能会说:豌豆荚太牛逼了,App数量是酷安的十倍,所以我选酷安。
以上,就是利用Scrapy爬取分类多级页面的抓取和分析的一次实战。
高铁动车座位为什么没有中国高速铁路一般采用无砟轨道,也有少部分采用有砟轨道。中国高铁线路统一运营构造速度达200kmh以上的电力动车组列车,车次分G、D、C字母开头三种,车辆分CRH和CR系列车型,……
5分钟看完微软Build2019开发者大会精华视频IT之家5月8日消息微软Build2019开发者大会已经进入第三天,而主要的内容集中在Build2019大会首日。如果你没有时间观看萨提亚纳德拉完整的Build2019主题演讲……
7188元7888元起,微软SurfacePro6LaptoIT之家10月15日消息今天微软在北京举行了SurfacePro6和SurfaceLaptop2国行新品发布会,国行价格已公布,售价7188元、7888元起,10月16日正式开……
微软SurfacePro6Laptop2Studio2国行现IT之家10月15日消息微软今天在北京举行了新品发布会,发布了最新的SurfacePro6、SurfaceLaptop2,还亮相了SurfaceStudio2、SurfaceH……
微软SurfaceLaptop2国行灰粉金现场实拍图赏IT之家10月15日消息微软今天在北京举行了新品发布会。微软推出了最新的SurfaceLaptop2笔记本。其中这次微软发布了SurfaceLaptop2灰粉金版,另外还有亚光……
刚怀孕吃豆腐好吗豆腐在我们日常吃的食物中是最常见的食物之一,豆腐的营养很高,吃豆腐的好处也不少,而且豆腐的做法也很多,豆腐营养不低,所以怀孕的准妈妈也是可以吃豆腐的,那么刚怀孕吃豆腐好吗?下面……
中国共青团入团申请共篇第1篇:中国共青团入团申请例文自从上初中以来,共青团这个熟悉的名字时常在我耳边回绕着,我多么希望能加入这属于青年人自己的组织共青团。入党申请书范文现在,我已经是一名……
微软Win10商店书籍板块被砍掉即日生效感谢IT之家网友软媒用户1293485的线索投递!IT之家4月3日消息根据今天更新的微软支持页面,微软正在停止支持微软商店的Books板块。Books标签的消亡立即生效,……
中国十大变态凶杀案奸杀居多第一害死人令人发指这世界上总有一些令人发指的案件,不仅是国外,在中国也有不少,其中不乏变态凶杀案。而这些凶手杀人的对象要不是女人要不就是孩子,手段残忍的恶劣犯罪给社会造成了极大的影响,好在他们都……
微软Win1019H1新特性Windows控制台能缩放了IT之家11月1日消息常规Windows控制台用户现在有了一个好消息。微软已添加使用ControlMouseScrollWheelTrackPad组合放大屏幕内容的功能。随着屏……
核心素养背景下小学生良好学习习惯培养策略的研究一、研究背景2011年,教育部颁布了义务教育课程方案,修订了各学科课程标准,其中小学各学科课程总目标中都包含学生良好学习习惯的培养要求。2016年,中国学生发展核心……
Win10更新四月十月版现新bug注册表自动备份失效IT之家11月1日消息来自gHacks的消息显示,Windows10更新四月版(1803版)、更新十月版(1809版)又曝出了一个新漏洞,这一漏洞影响了设备的注册表备份功能。……
迷人葫芦编可爱加减法很多女孩都十分热衷韩剧中的一个女主角的发型,其中最长出现的应该要数葫芦编了吧,无论是在韩国街头还是在韩剧中,女孩们对葫芦编的热爱程度都是很高。下面就一起来了解下吧。齐刘海……
我带孙悟空游上海有一天,我跟好朋友孙悟空说:你知道我的家乡上海是怎样的吗?孙悟空摇摇头说:不知道。于是,我就和孙悟空乘着热气球一起去游上海。我们飞呀飞,飞到东方明珠塔。孙悟空问:这是什么……
女生辫子发型大汇集俏美时尚不在话下首先带给大家一款甜美俏皮的一款双马尾辫发型设计,柔顺的齐刘海,不规则的双马尾辫,简简单单的就打造出来,也很适合手残党的妹纸们哦。想要清爽简单一些的辫子发型设计,那么此款小……
可怜的盖茨比昨天看完《了不起的盖茨比》,感觉盖茨比实在很可怜,就这样凄然死去让人感到十分不值。更可怜的是,他到死都没明白他所爱上的究竟是怎样一个贪慕浮华的女人,他所追求的究竟是怎样一个虚无……
捡鞋掌有这么一个修鞋的,修鞋技术很差。他本钱少,鞋掌只准备一副足够。遇见有来钉鞋掌的,钉好了走出门,这修鞋匠便跟出去,走不多远,那鞋掌就掉在路上,鞋匠捡回去,下次有来钉鞋……
雪中的乐趣下雪啦,下雪啦!雪花纷纷扬扬的落下来,轻飘飘的落到屋檐上、大地上。小树被白花花的雪围裹着,好似圣诞树。公路也变白了,就像给它铺上了白毯,准备迎接新客人的到来。看着这么大的……
星座运势唐立淇每日星座运势唐立淇每日星座运势2017。01。17晴天星座巨蟹今天财运佳且人气高涨,不妨多多微笑,把握这天的好人缘。感情方面和另一半的关系很好;单身者会因为好人缘的关系,……
世界上最近的航线路程花费秒就能够到达在现在的时代发展下,有越来越多的人开始走出国门,无论是工作还是留学,又或者是单纯的旅游,人们对于出过的这件事情更是感觉非常的正常;这在上个世纪的时候,是一件非常难办的事情,因为……
种大白菜防治野蛞蝓的方法在种植大白菜过程中,遇到害虫的侵害是件很令人头疼的事情,害虫的出现预示着白菜减产和品质的下降,野蛞蝓就是其中一种害虫,下面小编为大家介绍种大白菜防治野蛞蝓的方法,希望对菜农们有……
有哪些光脚养生妙招专家表示,人的双脚上有无数的神经末梢与大脑紧密相连,光脚走路可增加抗寒能力,让人少生病,还能给脚心以足够的刺激,从而促进大脑活动。长期刺激脚底穴位,有活血、去除身体静电、更好治……
谢谢您对我的爱昔我往矣,杨柳依依,今我来思,雨雪霏霏。题记犹记童稚时,家住老街深处。青瓦灰砖,小心地阻隔着外界的喧嚣。那时父母工作忙,我便寄居在奶奶您家。每当我去的时候,您总会老……
降低血脂的有效方法有哪些1、不要熬夜每天晚上最好在22:00~7:00之间睡觉,一天最少睡够个小时。如果有良好的作息你的精神会越来越好。2、不要吃太饱吃饭不要吃十分饱,更不要吃饱了还……