这是jack 老哥的教程,自己修改了一下,原URL:https://blog.csdn.net/c406495762/article/details/76850843
要点:1.hero.ljust(26) 在最左方,26是总str长度
2.end='\t\t' 代表不换行
3.使用fiddler 抓包
import requests def get_hero(heros_url): '''把所有英雄跟ID都罗列出来''' print('*' * 100) print('欢迎使用《王者荣耀》出装下助手!'.center(100)) print('*' * 100) req = requests.get(url = heros_url, headers = headers).json() flag = 0 for each_hero in req['list']: flag += 1 hero='%s的ID为:%s' % (each_hero['name'], each_hero['hero_id']) print(hero.ljust(26), end='\t\t') #在最左方,26是总str长度 if flag == 3: #每3个就换行 print() flag = 0 def get_equips(id): '''输入武器的ID,返回的是对应的name,price''' weapon_url = "http://gamehelper.gm825.com/wzry/equip/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" req = requests.get(url=weapon_url, headers=headers).json() equips = {} #所有武器{ID:[name,price] ,,,} for equip in req['list']: equips[equip['equip_id']] = [equip['name'], equip['price']] try: return equips[str(id)][0],equips[str(id)][1] except: print('装备不对!!') def get_hero_id(id): '''输入英雄的ID,得到名字、简介、多个装备推荐''' hero_url = "http://gamehelper.gm825.com/wzry/hero/detail?hero_id={}&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". \ format(str(id)) req = requests.get(url=hero_url, headers=headers).json() print('\n历史上的%s:\n %s' % (req['info']['name'], req['info']['history_intro']))#英雄简介 for equip in req['info']['equip_choice']: #在 装备套件list里,在这个路径里有好几个装备套装 print('\n%s:\n %s' % (equip['title'], equip['description']))#装备简介 all_price = 0 flag=0 for icon in equip['list']: #在此装备套件里 flag+=1 id=icon['equip_id'] name,price= get_equips(id) zhuangbei='%s:%s' % (name, price)#无尽战刃:2140,每3个一行写出 print(zhuangbei.ljust(10), end='\t') if flag == 3: print() flag = 0 all_price += int(price) #循环里每个价格相加 print('神装套件价格共计:%d' % all_price) if __name__ == '__main__': headers = {'Accept-Charset': 'UTF-8', 'Accept-Encoding': 'gzip,deflate', 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; MI 5 MIUI/V8.1.6.0.MAACNDI)', 'X-Requested-With': 'XMLHttpRequest', 'Content-type': 'application/x-www-form-urlencoded', 'Connection': 'Keep-Alive', 'Host': 'gamehelper.gm825.com'} 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" get_hero(url) print() id=input('请输入要查询的英雄ID:') try: get_hero_id(id) except: print('输入ID有问题')
效果图: