之前爬取都是网页上的数据,今天要来说一下怎么借助Fidder来爬取手机APP上的数据。
一、环境配置
1、Fidder的安装和配置
没有安装Fidder软件的可以进入 这个网址 下载,然后就是傻瓜式的安装,安装步骤很简单。在安装完成后,打开软件,进行如下设置:
这里使用默认的8888端口就好了,如果要修改的话,要避免和其他端口冲突。
2、手机的配置
首先打开cmd,输入ipconfig查看IP地址,记录下这个IP地址:
想要使用FIdder进行手机抓包,要让手机和PC处在同一个内网中,方法就是连接同一个无线网络。然后打开手机,进入Wi-FI设置修改代理为手动代理,再把上面的IP地址和8888端口号输入进去:
然后打开浏览器,输入http://127.0.0.1:8888,会看到如下界面,点击FidderRoot certificate下载证书:
下载好之后如果出现无法安装的情况,可以进入设置进行手动安装证书,我的安装步骤是“设置->系统安全->从SD卡安装”,不同的手机安装步骤不同,不过也差不多吧。
3、抓包测试
在完成上面的步骤之后,我们先进行一下抓包测试,打开手机的浏览器,然后打开百度的网页,可以看到出现了对应的包,这样就可以进行之后的抓取了。
二、抓取步骤
这次使用的APP是王者荣耀盒子,打开APP,点击英雄,可以看到第一个英雄-上官婉儿,然后点进去。
然后在Fidder中可以找到如下这个包:
然后在右侧可以看到如下信息:
把这些信息复制一下,然后解码一下就可以看到如下数据了,包括英雄名字、英雄图片、英雄技能等信息:
但是在推荐装备的信息里,只有装备的id值,却没有装备的名字,那我们要怎么获得这些装备的名字呢?还是同样的办法,点击查看所有装备,然后抓包,找到对应的包,再进行爬取。在获得所有的装备和对应的id后,可以再爬取所有的英雄名称,然后就可以制作我们自己的英雄攻略了==
运行结果如下:
三、完整代码
""" Version: Python3.5 Author: OniOn Time: 2018/11/26 21:20 """ import requests # 装备信息 EQUIP_LIST = [] # 英雄信息 HERO_LIST = [] # 爬取英雄信息 def get_hero(hero_id): url = "http://gamehelper.gm825.com/wzry/hero/detail".format( hero_id) res = requests.post(url) js = res.json() img_url = js['info']['big_img'] skill_tips = js['info']['skill_tips'] # 使用技巧 skill_list = [] # 技能介绍 for i in js['info']['skill_list']: desc = i['description'] if '<br>' not in i['description'] else i['description'].replace('<br>', '') skill_list.append({ "name": i['name'] + "({})".format(i['intro']), "type": i['tags'], "desc": desc }) print("英雄图片链接:{}".format(img_url)) print("英雄使用技巧:{}".format(skill_tips)) for i in skill_list: print('{} 类型:{} \n技能介绍:{}'.format(i['name'], i['type'], i['desc'])) print("推荐装备:", end="") equip_choice = [] # 推荐装备 all_money = for i in js['info']['equip_choice'][]['list']: equip_choice.append(EQUIP_LIST[int(i['equip_id'])]['name']) all_money += int(EQUIP_LIST[int(i['equip_id'])]['price']) print(' '.join(equip_choice), " (装备总金额:{})".format(all_money)) # 爬取所有装备的基本信息 def get_all_equip(): url = "http://gamehelper.gm825.com/wzry/equip/list" res = requests.get(url) for i in res.json()['list']: EQUIP_LIST.append({ 'price': i['price'], 'name': i['name'], # 'equip_id': i['equip_id'] }) # 爬取所有英雄的基本信息 def get_all_hero(): # 英雄定位: type 1-战士 2-法师 3-坦克 4-刺客 5-射手 6-辅助 type_list = ['战士', '法师', '坦克', '刺客', '射手', '辅助'] url = "http://gamehelper.gm825.com/wzry/hero/list" res = requests.get(url) for i in res.json()['list']: HERO_LIST.append({ "name": i['name'], "id": i['hero_id'], 'type': '/'.join([type_list[int(j) - ] for j in i['type']]) }) if __name__ == '__main__': get_all_hero() length = len(HERO_LIST) print("-" * 50) for i in range(0, length // 5 * 5, 5): print('{}(id:{}) '.format(HERO_LIST[i]['name'], HERO_LIST[i]['id']), end=' ') print('{}(id:{}) '.format(HERO_LIST[i + 1]['name'], HERO_LIST[i + 1]['id']), end=' ') print('{}(id:{}) '.format(HERO_LIST[i + 2]['name'], HERO_LIST[i + 2]['id']), end=' ') print('{}(id:{}) '.format(HERO_LIST[i + 3]['name'], HERO_LIST[i + 3]['id']), end=' ') print('{}(id:{}) '.format(HERO_LIST[i + 4]['name'], HERO_LIST[i + 4]['id'])) for i in range(length // 5 * 5, length): print('{}(id:{}) '.format(HERO_LIST[i]['name'], HERO_LIST[i]['id']), end=' ') print('\n', "-" * 50) get_all_equip() get_hero(input("\n请输入您想查看的英雄id:"))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]