啥也不多说,我们今天要爬取的是小米应用商店排名前100的App,先来看来要爬取的东西长啥样

从上面的图可以看到,左侧是一个应用排行,但是只列出了前10个,好在右边列出了更多的应用,每一页显示了48个,也就是排名前48的应用,那么我们要爬取前100个就可以通过翻页来实现。

  1. 首先我们列出这个爬虫需要用到的一些库文件
    (1)Requests: Requests is an elegant and simple HTTP library for Python, built for human beings. 处理与网页有关
    (2)re:处理正则表达式

2.第二步:分析网页结构
打开小米应用商店,找到我们要找的东西,对应的就是上图各个APP的名称以及序号。这里的序号很好解决,因为右侧的APP图标就是有序排列的。在打开的网页上按下F12,然后通过查找我们就可以找到APP的名称,如下图所示:

因为我们要pai爬排名取前100的,一般网页上不可能显示这么多,我们我们首先要看看每一页显示了多少个,小米应用商店每一页显示的是48个,所以我们需要打开前3页才能获取到前100的APP。

3.下面啥也不说,直接上代码,里面有详细的注释

# -*-coding:utf8-*-
import requests
import re
import mathj = 1
#查看每一页都多少个APP,用于决定我们要翻多少页
html = requests.get('http://app.mi.com/topList')#获取网页的源代码
label = re.findall('<p class="app-desc">', html.text, re.S)#打开网页源码发现每个App名称前面有<p class="app-desc">,
# 所有统计这个标示的个数就可以知道每一页有多少个APP啦
pageAppNum = len(label)#label的长度就代表了每一页APP的个数# print pageAppNumprint u'请输入App的数目:'
appNum = int(raw_input())
#根据要爬取的APP个数决定要翻多少页
pageNum = math.ceil(float(appNum) / pageAppNum)for i in range(1, int(pageNum + 1)):html = requests.get('http://app.mi.com/topList?page=' + str(i))#括号内是每一页的连接地址# print html.texttitle = re.findall('</a><h5><a href=".*?">(.*?)</a></h5><p class="app-desc">', html.text, re.S)#找对应的APP的名称在网页中的位置,并用正则表达式来获取,如果看不懂,那你该好好去看看正则表达式了#将每一页的APP按先后顺序输出,知道第100个for each in title:if j <= appNum:print str(j) + ":" + eachj = j + 1

4.结果

请输入App的数目:
100
1:QQ
2:爱奇艺-跑男4
3:微信
4:王者荣耀
5:优酷视频
6:穿越火线:枪战王者
7:手机淘宝
8:百度云
9:腾讯视频
10:全民K歌
11:支付宝
12:美团
13:天天酷跑
14:QQ音乐
15:球球大作战
16:酷狗音乐
17:快手
18:UC浏览器
19:微博
20:芒果TV
21:美图秀秀
22:多玩我的世界盒子
23:爱奇艺PPS
24:迅雷
25:斗鱼
26:土豆视频
27:铁路12306(官方)
28:乐视视频-翻译官
29:QQ浏览器-小说品读季
30:保卫萝卜3
31:京东
32:我的世界
33:美颜相机
34:陌陌
35:搜狗输入法
36:百度糯米-美食电影
37:58同城
38:天猫
39:影视大全
40:开心消消乐
41:百度贴吧
42:滴滴出行
43:搜狐视频
44:高德地图
45:手机百度
46:百度地图
47:欢乐斗地主
48:饿了么
49:哔哩哔哩动画
50:天天P图
51:优步 - Uber
52:QQ空间
53:宜搜小说
54:酷我音乐
55:平安WiFi
56:赶集生活
57:掌上英雄联盟
58:映客直播
59:暴风影音
60:百度外卖
61:唯品会-正品特卖
62:节奏大师
63:腾讯新闻
64:米聊
65:大众点评-美食红包
66:返利
67:QQ安全中心
68:剑侠情缘
69:唱吧
70:美拍
71:手机营业厅
72:熊猫TV
73:YY
74:书旗小说
75:今日头条
76:虎牙直播
77:QQ阅读
78:葫芦侠3楼
79:QQ轻聊版
80:美团外卖
81:携程旅行
82:钢琴块2
83:潮自拍
84:小咖秀
85:Faceu
86:聚力视频
87:高考帮
88:掌阅iReader
89:WiFi钥匙
90:我的世界中文版
91:咪咕阅读-免费小说
92:一直播
93:腾讯动漫-漫画动画
94:宾果消消乐(原糖果萌萌消)黄致列魔法代言
95:WiFi万能密码
96:秒拍
97:网易云音乐
98:我的汤姆猫
99:QQ邮箱
100:搜狗搜索

python 网络爬虫——爬取小米应用商店排名前100App相关推荐

  1. 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  2. python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  3. python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...

    原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...

  4. Python:网络爬虫爬取某表情包网站

    Python:网络爬虫爬取某表情包网站 参考: 爬虫基础知识点汇总(html文件基础和4个常用库 超级详细长文预警) [爬虫教程]吐血整理,最详细的爬虫入门教程~ HTML的简单介绍 HTML的全称为 ...

  5. Python网络爬虫爬取虎扑步行街爆照区话题

    Python网络爬虫爬取虎扑步行街爆照区话题 作者:郜科科 最近的任务挺多的,但是心情很烦躁,想做一些自己喜欢的东西,前些时候感觉Python爬虫很好玩,就自学了一下.本人比较喜欢逛街--虎扑步行街, ...

  6. 用python网络爬虫爬取英雄联盟英雄图片

    用python爬虫爬取lol皮肤. 这也用python网络爬虫爬取lol英雄皮肤,忘了是看哪个大神的博客(由于当时学了下就一直放在这儿,现在又才拿出来,再加上马上要考二级挺忙的.),代码基本上是没改, ...

  7. 使用python网络爬虫爬取新浪新闻(一)

    使用python网络爬虫爬取新浪新闻 第一次写博客,感觉有点不太习惯!不知道怎么突然就想学学爬虫了,然后就用了一天的时间,跟着教程写了这个爬虫,!不说废话了,我将我从教程上学习的东西整个写下来吧,从头 ...

  8. python如何爬虫网页数据-python网络爬虫爬取网页内容

    1.什么是网络爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自 ...

  9. python网络爬虫——爬取嗅事百科

    网络爬虫 - 爬取嗅事百科 爬取过程分三大步: 一,请求,获取网页源码 url为:url =' https : //www.qiushibaike.com/8hr/page/'+ str(page)先 ...

最新文章

  1. 树套树 ----- P1975 [国家集训队]排队(树状数组套权值线段树求动态逆序对)
  2. Linux 下 *.tar.gz 文件解压缩命令
  3. mysql修行练级之字符集,数据类型与存储引擎选择
  4. [ 转载 ] Handler详解
  5. 通过jQuery的比较来认识AngularJS
  6. python中如何生成项目帮助文档
  7. 安装pillow遇到的问题
  8. 乔伊·伯纳尔(Joey Bernal)的评论专栏,社交网络的三阶段路线图
  9. 软件测试工作的目的和原则是什么?
  10. 互联网巨头在2018年竞争的主战场 这个技术的新风口已到
  11. 第四期:如何通过知晓云自动回复客服消息
  12. 使用VNC连接树莓派4b如何全屏1080p分辨率,一次更改永久有效!
  13. 表观修饰的“当红炸子鸡” - 组蛋白乳酸化
  14. 19软考软件设计师_19个免费的设计师在线杂志
  15. 千兆上网行为管理路由评测
  16. 巧用右键管家 清除右键菜单【乡巴佬】
  17. 集成Google应用内 支付 或者 订阅
  18. 你要学习你要学习你要学习
  19. 解决biblatex中作者显示全名的问题
  20. Navicat之服务器监控,进行查询进程监控

热门文章

  1. PTA 校选拔 7-10 宇航员的寻宝图(BFS)
  2. 瓦片地图 cocos
  3. 设计评审CheckList
  4. HTML5实现简单留言板1
  5. android实现全国公祭日灰白模式
  6. Oracle如何快速、大量的插入数据
  7. 【教学类-30-02】10以内加法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内加法题 只抽取25个)
  8. 高等数学入门教程 — 自然底数e
  9. vue 实现 高德地图 api 掩模、定位、天气
  10. 编写Transact-SQL语句