接下来我们获取英雄和武器信息,详细代码KingGlory.py如下(代码中有详细注解):

# -*- coding: utf-8 -*-
#!/usr/bin/env python
# @Time : 2018/6/15 17:12
# @Desc :
# @File : KingGlory.py
# @Software: PyCharm
"""
导入库
"""
import urllib
import requests,sys
"""
统一编码
"""
reload(sys)
sys.setdefaultencoding('utf-8') """
获取英雄图片
"""
def DownloadHeroImage(url):
req=requests.get(url=url).json()
HeroNum=len(req['list'])
print "一共有%d个英雄"%HeroNum
HeroImagesPath="HeroiImages"
HeroList=req['list']
for Hero in HeroList:
HeroImageUrl=Hero['cover']
HeroName=Hero['name']+".jpg"
FileName=HeroImagesPath+"/"+HeroName
print "正在下载%s的图片"%Hero['name']
urllib.urlretrieve(url=HeroImageUrl, filename=FileName) """
获取所有英雄的名字和ID
"""
def HeroList(url):
print '-'*100
print '\t\t\t\t欢迎使用《王者》出装小助手'
print '-'*100
req=requests.get(url=url).json()
flag=0
HeroList=req['list']
# for Hero in HeroList:
# flag+=1
# print "%s的ID为:%s"%(Hero["name"],Hero["hero_id"]),"\t"
# if flag==3:
# print "\n",""
# flag=0
return HeroList
"""
获取并打印出装信息
Weapon所有武器的字典
"""
msg=''
def HeroInfo(url,WeaponInfo):
req = requests.get(url=url).json()
# msg=''
msg='历史上的%s:%s'%(req['info']['name'],req['info']['history_intro'])
# print "\n历史上的%s:\n %s"%(req['info']['name'],req['info']['history_intro'])
for eachEquipChoice in req['info']['equip_choice']: msg+='\n'+(eachEquipChoice['title'])+':'+eachEquipChoice['description']
print "\n%s:%s"%(eachEquipChoice["title"],eachEquipChoice["description"])
flag=0
totalPrice=0
for eachWeapon in eachEquipChoice['list']:
flag+=1
weapon=seekWeapon(eachWeapon['equip_id'],WeaponInfo)
weaponName=weapon[0]
weaponPrice=weapon[1]
msg+=('%s:%s'%(weaponName,weaponPrice)+'\t')
print "%s:%s"%(weaponName,weaponPrice),"\t"
if flag==3:
print "\n",""
flag=0
totalPrice+=int(weaponPrice)
msg+=u'神装套件总计:'+str(totalPrice)
# print "神装套件总计:%d"%totalPrice
return msg """
根据equip_id查询武器名字和价格
WeaponInfo保存所有武器的字典
"""
def seekWeapon(equipid,weaponinfo):
for weapon in weaponinfo:
if weapon['equip_id']==str(equipid):
weaponname=weapon['name']
weaponprice=weapon['price']
return weaponname,weaponprice """
获取武器信息
"""
def heroWeapon(url):
req=requests.get(url=url).json()
weaponList=req['list']
return weaponList if __name__ == '__main__':
# 英雄列表URL地址
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"
# DownloadHeroImage(heros_url)
# 武器URL地址
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"
weaponInfo=heroWeapon(weapon_url)
#
HeroList=HeroList(heros_url)
for Hero in HeroList:
print "%s的ID为:%s"%(Hero["name"],Hero["hero_id"]),"\t"
hero_id=Hero["hero_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(
hero_id)
HeroInfo(hero_url,weaponInfo)

执行结果如下:

创建图形化界面views.py代码如下(代码中有详细注解):

# -*- coding: utf-8 -*-
#!/usr/bin/env python
# @Time : 2018/6/19 14:37
# @Desc :
# @File : views.py
# @Software: PyCharm from Tkinter import *
import tkMessageBox
from KingGlory import * class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets() def createWidgets(self):
self.nameInput = Entry(self,width=40)
self.nameInput.pack()
self.alertButton = Button(self, text='请输入英雄名', command=self.hello)
self.alertButton.pack() def hello(self):
# 武器URL地址
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"
weaponInfo = heroWeapon(weapon_url)
# 英雄列表URL地址
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" data = self.nameInput.get()
HeroLis = HeroList(heros_url)
Herodir={}
for Hero in HeroLis:
Herodir[Hero['name']]=Hero['hero_id']
if Herodir.has_key(data):
hero_id = Herodir[data]
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(
hero_id)
msg=HeroInfo(hero_url, weaponInfo)
tkMessageBox.showinfo('英雄信息', '%s'%msg)
else:
tkMessageBox.showinfo('英雄信息', '%s' % "此英雄不存在!!!") if __name__ == '__main__':
app = Application()
# 设置窗口标题:
app.master.title('王者助手')
# 主消息循环:
app.mainloop()

执行结果如下:

还有其他图形界面的表示方法,大家可以自己挖掘一下。

有一个微信公众号“IT-LearnHall”,经常会分享一些python技术相关的干货,可以了解一下。

Python实现王者荣耀小助手(一

Python实现王者荣耀小助手(二)的更多相关文章

  1. Python实现王者荣耀小助手(一)

    简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手: 前期准备,环境搭建: Python2.7 sys模 ...

  2. python爬虫王者荣耀高清皮肤大图背景故事通用爬虫

    wzry-spider python通用爬虫-通用爬虫爬取静态网页,面向小白 基本上纯python语法切片索引,少用到第三方爬虫网络库 这是一只小巧方便,强大的爬虫,由python编写 主要实现了: ...

  3. python实现王者荣耀英图片收集

    一个python写的小爬虫项目,爬虫相关的很容易写,关键是怎么找到爬取图片的位置. 图片位置分析 hero_list_url = 'http://pvp.qq.com/web201605/js/her ...

  4. python 爬取王者荣耀高清壁纸

    代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

  5. 用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话

    大家好,我是辰哥~ 今天辰哥带大家分析一波当前热门手游<王者荣耀>英雄皮肤,比如皮肤上线时间.皮肤类型(勇者:史诗:传说等).价格. 1.获取数据 数据来源于<王者荣耀官方网站> ...

  6. 用python的requests第三方模块抓取王者荣耀所有英雄的皮肤

    本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸 下面时具体的代码,已通过python3.6测试,可以成功运行: ...

  7. Python3 类与对象之王者荣耀对战小游戏

    王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...

  8. 利用python爬取王者荣耀英雄皮肤图片

    前两天看到同学用python爬下来LOL的皮肤图片,感觉挺有趣的,我也想试试,于是决定来爬一爬王者荣耀的英雄和皮肤图片. 首先,我们找到王者的官网http://pvp.qq.com/web201605 ...

  9. python学习--第二天 爬取王者荣耀英雄皮肤

    今天目的是爬取所有英雄皮肤 在爬取所有之前,先完成一张皮肤的爬取 打开anacond调出编译器Jupyter Notebook 打开王者荣耀官网 下拉找到位于网页右边的英雄/皮肤 点击[+更多] 进入 ...

随机推荐

  1. 对BFC规范的理解

    什么是BFC? BFC 全称为 块级格式化上下文(Block Fromatting Context),是Web页面的可视化CSS渲染出的一部分.它是块级盒布局出现的区域,也是浮动层元素进行交互的区域. ...

  2. Mac 下安装配置MongoDB讲解

    1.访问官网地址是:MongoDB Download Center | MongoDB,一般下载server的Community 版,对于一般开发人员来说已经够用了.   2.点击“DOWNLOAD( ...

  3. 浅谈sqlserver的事务锁

    锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 ...

  4. 面试官,不要再问我“Java GC垃圾回收机制”了

    Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈. 楔子-JVM内存结构补充 在上篇<JVM之内存结构详解> ...

  5. Java基础之集合框架(Collection接口和List接口)

    首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关 ...

  6. 防止CSRF跨站请求伪造

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站 ...

  7. std::wstring

    std::wstring主要用于 UTF-16编码的字符, std::string主要用于存储单字节的字符( ASCII字符集 ),但是也可以用来保存UTF-8编码的字符. UTF-8和UTF-16是 ...

  8. mysql 二十余种报错注入姿势

    1.floor()  floor 和group by 搭配使用 利用group by 的key唯一性 和mysql 编码执行顺序导致二次执行产生不同key ))) ) 数值型注入时 不用闭合‘  进行 ...

  9. python学习-异常处理之捕获异常与抛出异常(七)

    捕获异常 python完整的异常处理语法结构如下: 特别说明: 1.try块是必需的,except块和finally,当try块没有出现异常时,程序会执行else块 2.try块后只有一个except ...

  10. 解决Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory报错

    前几日看到鸟哥介绍的 <让你的PHP7更快之Hugepage>, 于是想试试手给服务器加上,参照格式安装好扩展,调整好配置文件,然后重启php-fpm,结果启动一直报Zend OPcach ...