Python如何爬取《王者荣耀盒子》APP


运行平台

Windows

Python版本

Python3.x

IDE

Sublime text3


什么是Fiddler?


Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器

Python如何爬取《王者荣耀盒子》APP


利用可以设置代理的这个特点,我们就可以对手机APP进行抓包了。怎么设置?不急不急,让我先把Fiddler安装上吧!

Fiddler下载地址:Fiddler下载–>点我

傻瓜式安装,一键到底。Fiddler软件界面如图所示:

Python如何爬取《王者荣耀盒子》APP

手机抓包设置 

Fiddler设置

打开Fiddler软件,打开工具的设置。

(Fiddler软件菜单栏:Tools->Options)

Python如何爬取《王者荣耀盒子》APP

在HTTPS中设置如下

Python如何爬取《王者荣耀盒子》APP

在Connections中设置如下,这里使用默认8888端口,当然也可以自己更改,但是注意不要与已经使用的端口冲突

Python如何爬取《王者荣耀盒子》APP


  安全证书下载  

在电脑浏览器中输入地址:http://localhost:8888/

点击FiddlerRoot certificate,下载安全证书

Python如何爬取《王者荣耀盒子》APP

  安全证书安装  

证书是需要在手机上进行安装的,这样在电脑Fiddler软件抓包的时候

手机使用电脑的网卡上网才不会报错。

将下载好的FiddlerRoot.cer安装证书拷贝到手机中

然后进行证书安装(以小米5手机为例)

设置(Settings)->(系统和设备中的)更多设置->系统安全->从存储设备安装:

Python如何爬取《王者荣耀盒子》APP

然后找到拷贝的FiddlerRoot.cer进行安装即可。

安装好之后,可以在信任的凭证中找到我们已经安装好的安全证书

在用户中可以看到证书如下:

Python如何爬取《王者荣耀盒子》APP

  局域网设置 

首先,查看电脑的IP地址,在cmd中使用命令ipconfig查看电脑IP地址。

找到无线局域网WLAN的IPv4地址,记下此地址。

Python如何爬取《王者荣耀盒子》APP

在手机上,点击连接的WIFI进行网络修改,添加代理。进行手动设置,

主机名即为上图中找到的IP地址,端口号即为Fiddler设置中的端口号8888:

Python如何爬取《王者荣耀盒子》APP

  Fiddler手机抓包测试 

Python如何爬取《王者荣耀盒子》APP

 

先来个简单的例子热热身,我想将《英雄联盟盒子》中的英雄图片下载下来,该如何操作?

Python如何爬取《王者荣耀盒子》APP

先使用Fiddler抓包看一下,在手机APP《英雄联盟盒子》中的菜单中点击英雄,电脑Fiddler就会抓包如下:

Python如何爬取《王者荣耀盒子》APP

可以看到,GET请求的url地址,和返回的JSON格式的信息。那么编写代码如下:

Python如何爬取《王者荣耀盒子》APP

从代码运行结果中可以看到,百里玄策的英雄ID为104,他的图片存放地址为http://pic.wankacn.com/2017-08-04_59844776a6adf.png

Python如何爬取《王者荣耀盒子》APP

知道了这些信息,我们就可以将这些英雄的图片进行下载了,编写代码如下:

Python如何爬取《王者荣耀盒子》APP

运行上述代码,看下结果,72个英雄的图片,分分钟搞定:

Python如何爬取《王者荣耀盒子》APP

是不是很简单