专栏名称: 51CTO
51CTO官方公众号——聚焦最新最前沿最有料的IT技术资讯、IT行业精华内容、产品交流心得。本订阅号为大家提供各种技术干货,还会不定期的举办有奖活动,敬请关注。
目录
相关文章推荐
新浪科技  ·  【#债券型ETF迅速扩容#】#5月超400亿 ... ·  昨天  
IT之家  ·  再也不怕刷屏,微信界面空前清爽 ·  2 天前  
51好读  ›  专栏  ›  51CTO

我用Python爬了《王者荣耀盒子》,发现王者荣耀最强套路!

51CTO  · 公众号  · 科技媒体  · 2017-09-01 11:45

正文

请到「今天看啥」查看全文


证书是需要在手机上进行安装的,这样在电脑 Fiddler 软件抓包的时候,手机使用电脑的网卡上网才不会报错。


将下载好的 FiddlerRoot.cer 安装证书拷贝到手机中,然后进行证书安装。以小米 5 手机为例:设置(Settings)->(系统和设备中的)更多设置->系统安全->从存储设备安装:

然后找到拷贝的 FiddlerRoot.cer 进行安装即可。安装好之后,可以在信任的凭证中找到我们已经安装好的安全证书,在用户中可以看到证书如下:


局域网设置

想要使用 Fiddler 进行手机抓包,首先要确保手机和电脑的网络在一个内网中,可以让电脑和手机都连接同一个路由器。


当然,也可以让电脑开放 WiFi 热点,手机连入。这里,我使用的方法是,让手机和电脑同时连入一个路由器中。最后,让手机使用电脑的代理 IP 进行上网。


首先,查看电脑的 IP 地址,在 cmd 中使用命令 ipconfig 查看电脑 IP 地址。找到无线局域网 WLAN 的 IPv4 地址,记下此地址。

在手机上,点击连接的 WiFi 进行网络修改,添加代理。进行手动设置,主机名即为上图中找到的 IP 地址,端口号即为 Fiddler 设置中的端口号 8888:



Fiddler 手机抓包测试

上述步骤都设置完成之后,用手机浏览器打开百度首页,我们就可以顺利抓包了,截图如下:



实战走起

下载英雄图片

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

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

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

  1. import requests

  2. if __name__ == '__main__':  

  3.    headers = {'Accept-Charset': 'UTF-8',

  4.            'Accept-Encoding': 'gzip,deflate',

  5.            'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; MI 5 MIUI/V8.1.6.0.MAACNDI)',

  6.            'X-Requested-With': 'XMLHttpRequest',

  7.            'Content-type': 'application/x-www-form-urlencoded',

  8.            'Connection': 'Keep-Alive',

  9.            'Host': 'gamehelper.gm825.com'}

  10.    heros_url = "http://gamehelper.gm825.com/wzry/hero/list?channel_id=90009a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.3&version_code=1203&cuid=2654CC14D2D3894DBF5808264AE2DAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dc451556fc0eeadb&resolution=1080_1920&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8"

  11.    req = requests.get(url = heros_url, headers = headers).json()

  12.    print(req['list'])

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







请到「今天看啥」查看全文