在家呆着太无聊了,打玩王者也没事做,干脆自己做一个抽皮肤的程序爽一爽吧!

要想抽皮肤,首先得有皮肤图片啊。好在这些图片并不难找,用很简单的程序就能爬取下来了:

import os
import requestsurl = 'https://pvp.qq.com/web201605/js/herolist.json'
herolist = requests.get(url)  # 获取英雄列表json文件
herolist_json = herolist.json()  # 转化为json格式
hero_name = list(map(lambda x: x['cname'], herolist.json()))  # 提取英雄的名字
hero_number = list(map(lambda x: x['ename'], herolist.json()))  # 提取英雄的编号# 下载图片
def downloadPic():i = 0for j in hero_number:# 创建文件夹os.mkdir("C:/Users/lin042/Desktop/wangzhe/" + hero_name[i])# 进入创建好的文件夹os.chdir("C:/Users/lin042/Desktop/wangzhe/" + hero_name[i])i += 1for k in range(10):# 拼接urlonehero_link = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(j) + '/' + str(j) + '-bigskin-' + str(k) + '.jpg'im = requests.get(onehero_link)  # 请求urlif im.status_code == 200:open(str(k) + '.jpg', 'wb').write(im.content)  # 写入文件downloadPic()

这里采用了拼接url的办法,因为每个英雄的皮肤数量不一样,所以就用1-10的数字来拼接,没有就跳过。程序运行结束后,就会得到所有的皮肤图片:

接下来就用这些图片做一个抽卡程序吧。我想到的逻辑是根据输入的英雄名称,随机选取该英雄文件夹下的一张图片并显示;如果输入“随机”或是输入错误,则在所有图片中随机选取一张并显示;输入“q”则退出程序。下面是完整代码:

import glob
from PIL import Image
import random
import restrs = ""
while (strs != 'q'):print("请选择要抽取的英雄(输入英雄名称或随机):")strs = input()#随机抽取if(strs == "随机"):path = glob.glob("C:/Users/lin042/Desktop/wangzhe/*/*.jpg")  #获取所有图片的路径num = len(path)-1i = random.randint(0,num)pic = path[i]  #随机选取其中一个路径res = ''.join(re.findall('[u4e00-u9fa5]',pic))  #提取其中的中文,也就是英雄名称,用于显示print("恭喜你抽到了"+res+"!")img = Image.open(pic)img.show()#指定抽取elif(strs != 'q'): pic = "C:/Users/lin042/Desktop/wangzhe/"+strs+"/*.jpg"try:path = glob.glob(pic)  #如果路径不存在,会在这一步跳出try进入exceptnum = len(path)-1i = random.randint(0,num)pic = path[i]print("恭喜你抽到了"+strs+"!")img = Image.open(pic)img.show()#如果该英雄不存在(即文件夹不存在),则随机抽取except:print("该英雄不存在,为您随机抽取!")path = glob.glob("C:/Users/lin042/Desktop/wangzhe/*/*.jpg")num = len(path)-1i = random.randint(0,num)pic = path[i]res = ''.join(re.findall('[u4e00-u9fa5]',pic))print("恭喜你抽到了"+res+"!")img = Image.open(pic)img.show()#退出else:pass

随机的实现是利用glob.glob先读取所有图片的路径path,然后再获取随机数i作为索引值,找到对应路径的图片。

下面是运行结果,就抽取我最喜欢的鲁班七号吧!

看来运气不太好,只抽到了原皮……

无法定位程序输入点 except_python自制王者荣耀抽卡程序相关推荐

  1. tkinter label_tkinter版自制王者荣耀抽卡程序

    之前已经写了一个简单的控制台版本爬虫+抽卡程序,可以自己过瘾地抽王者荣耀皮肤. 花果山美男子:python自制王者荣耀抽卡程序​zhuanlan.zhihu.com 今天我们就在它的基础上,做一个tk ...

  2. 安装Qt creator时出现 无法定位程序输入点_except1 于动态链接库MSVCR120.dll上

    开始不知道怎么回事一直出现 无法定位程序输入点,_except于动态链接库MSVCR120.dll上,重新下了几个Qt版本同样出现这样的问题,后来在网上查了一下 这两天回老家了,没事打算在笔记本上装个 ...

  3. postman安装报错 无法定位_VS2010 + winxp 无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上 错误...

    winxp系统,使用VS2010, 在使用boost中的thread中的sleep的时候出现 "无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上&quo ...

  4. 安装tensorflow_gpu,无法定位程序输入点

    ** 安装tensorflow_gpu,无法定位输入点 ** 先安装好anaconda,在命令行中输入 pip install tensorflow 默认安装tensorflow-cpu版本.最近在学 ...

  5. debug内exe文件复制到桌面无法打开_Qt打包生成exe步骤和无法定位程序输入点_gxx_personality_v0于动态链接库...

    温馨提示:如果仅想知道 "无法定位程序输入点_gxx_personality_v0于动态链接库" 的解决方法,请直接跳到文末 第11步 如果想看具体Qt打包步骤或者 对出错具体细节 ...

  6. 无法定位程序输入点 inet_ntop 于动态链接库 WS2_32.dll上

    搜索了一下工程里, 根本没有使用到inet_ntop这个函数, 但是debug版运行的时候提示这个错误 无法定位程序输入点 inet_ntop 于动态链接库 WS2_32.dll上 解决方法: 项目- ...

  7. 无法定位程序输入点 InitializeCriticalSectionEx 于动态链接库 Kernel32.dll 上 问题解决方法

    无法定位程序输入点 InitializeCriticalSectionEx 于动态链接库 Kernel32.dll 上 问题解决方法 参考文章: (1)无法定位程序输入点 InitializeCrit ...

  8. 无法定位程序输入点?isPublicID@QXmlUtils@@SA_NAEVVQString@@@Z于动态链接库 D:\Qt\Qt5.7.0\5.7\msvc2015_64\bin\Qt5Cored

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 一.错误原因是什么? 解决办法 前言 主要用到了InfraRender.dll这个动态库,这个动态库又依赖:Qt5Cored.dll.Qt5Guid ...

  9. 无法定位程序输入点(cmake opencv_contrib,并配置后)

    无法定位程序输入点(cmake opencv_contrib,并配置后) 检查后发现是系统环境变量没有把之前opencv的给删除掉,删除掉原来的系统变量就好了

  10. 无法定位程序输入点_except1于动态链接库

    无法定位程序输入点_except1于动态链接库  开机就弹出这个错误,百度了好多,都不太好用,这里分享一下我的解决方案,个人比较懒,不想一个一个动态库找, 然后我就去微软官网下载了Visual  St ...

最新文章

  1. .sql文件如何执行_深入理解SQL原理:SQL查询语句是如何执行的?
  2. InnoDB和MyISAM引擎的效率比较
  3. oracle 获得月最后一天,oracle获取本月第一天和最后一天及Oracle trunc()函数的用法...
  4. SpringBoot集成JPA
  5. 如何设计好分布式数据库,这个策略很重要
  6. memset初始化类对象出错解析
  7. android用sax解析xml,Android:采用SAX解析XML实例
  8. SQL Management Studio Express 安装缺少MSXML6解决
  9. 精心为学弟学妹整理了60个适合练手的C语言/C++项目,值得收藏!
  10. vb杨辉三角代码编写_杨辉三角算法集锦vb
  11. android 分享小程序到微信,Android 使用友盟分享微信小程序到微信
  12. Eclipse 编辑代码字体的设置
  13. 柔性电子综述2014:Wearable Electronics and Smart Textiles 可穿戴电子设备
  14. Spring Boot配置QueryDSL(生成Query查询实体类,查询数据)
  15. IGBT基本工作原理及IGBT的作用是什么?
  16. 12,jesd204b实战操作笔记
  17. python生成Excel透视表
  18. Curious Cupid
  19. 自定义mvc框架复习(crud)
  20. node下载文件 解压压缩包

热门文章

  1. .NET读、写、查、删、改XML文件
  2. Linux标准化:避免重蹈UNIX的覆辙
  3. [Android]-图片JNI(C++\Java)高斯模糊的实现与比较
  4. 计算机基础知识试题和答案6,计算机基础知识试题及答案选择题(九)
  5. 微型计算机硬件认识和拆装,微型计算机系统硬件组成与外设认识.doc
  6. 88是python语言的整数类型_python基本数据类型练习
  7. gdi作图与系统不兼容_技术作图:技能准备amp;物理装备
  8. mysql服务器相互作用的协议_以下哪个不是与mysql服务器相互作用的通讯协议
  9. jsp单选按钮传值传递jsp_Unity3D与Java后台TomCat服务器传递数据和文件(2)传递文件...
  10. python按键退出循环_Python的for循环退出