用Python爬取王者荣耀英雄皮肤海报图
Python 荣耀 爬取 英雄 王者 皮肤 海报
2023-06-13 09:11:26 时间
介绍
在某平台公开课上学了怎么用python爬取王者的全英雄皮肤海报图,然后自己敲了一遍,发现还不错,把图片全部都爬取下来了,本来想用来做壁纸,但是一看,实在太丑,然后。。然后就不知道这些图片能干啥了。现在就来分享一些爬取王者海报图的思路。
思路
1,确定爬取的url路径
2,发送请求,一般需要模拟浏览器发送,需要用到 requests
3,解析数据,需要用json模块,json模块可以把json字符串转换换成Python可交互的数据
4,保存数据
开始
第一步
确定爬取的url路径
#在王者官网打开检查
base_url = 'https://pvp.qq.com/web201605/js/herolist.json'
第二步
模拟浏览器发送请求 这里要用到requests 获取响应数据
response = requests.get(base_url)
data_str = response.text #--字符串
第三步
解析数据,要用到json模块,json模块可以把 json字符串转化成python可交互的数据类型,
1,转换数据类型
data_list = json.loads(data_str)
2,解析数据
for data in data_list:
# 提取图片所需参数
ename = data['ename'] # 英雄编号
cname = data['cname'] # 英雄名字
try:
skin_name = data['skin_name'].split('|') # 切割皮肤的名字,用于计算每个英雄有多少个皮肤
except Exception as e:
print(e)
# http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/524/524-bigskin-1.jpg
#这是其中一个图片的url
# http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/ + 英雄编号 + "/" + 英雄编号-bigskin-皮肤序号 + ".jpg"
#这是图片url的格式
3,构建皮肤数量循环(使用for循环)
for skin_num in range(1, len(skin_name) + 1):
skin_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(ename) + '/' + str(
ename) + '-bigskin-' + str(skin_num) + '.jpg'
4,请求图片数据
skin_data = requests.get(skin_url).content
第四步
保存数据
with open('img\\' + cname + "-" + skin_name[skin_num - 1] + '.jpg', 'wb') as f:
print('正在下载皮肤:', cname + "-" + skin_name[skin_num - 1])
f.write(skin_data)
到这里就差不多结束了
完整代码
下面是一个完整代码
base_url = 'https://pvp.qq.com/web201605/js/herolist.json'
response = requests.get(base_url)
data_str = response.text
data_list = json.loads(data_str)
for data in data_list:
ename = data['ename'] # 英雄编号
cname = data['cname'] # 英雄名字
try:
skin_name = data['skin_name'].split('|')
except Exception as e:
print(e)
for skin_num in range(1, len(skin_name) + 1):
skin_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(ename) + '/' + str(
ename) + '-bigskin-' + str(skin_num) + '.jpg'
skin_data = requests.get(skin_url).content
with open('img\\' + cname + "-" + skin_name[skin_num - 1] + '.jpg', 'wb') as f:
print('正在下载皮肤:', cname + "-" + skin_name[skin_num - 1])
f.write(skin_data)
注意:要在目录下新建一个img的文件夹
相关文章
- Python 爬取 "王者荣耀.英雄壁纸" 过程中的矛和盾
- python字典和json字符串相互转化的方法_pythonjson文件存储
- Python里divmod_python yield函数
- Python: 通过Ghostscript压缩pdf文件
- Python爬虫——爬取王者荣耀全英雄台词语音
- Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]
- 【说站】Python海象运算符的使用
- python模块list 转json字符串_python 列表 字典转json[通俗易懂]
- Python文件名后缀_python获取目录下所有文件的文件名
- 用Python写一个爬取板块资金流程序
- python自动化测试—Python自动化框架及工具
- 搭建python开发环境-c++教程 如何搭建Python开发环境?
- 【测试开发】python系列教程:Python 推导式
- Python图像处理:频域滤波降噪和图像增强
- 网络工程师学Python-6-条件语句:If...Else
- python高级线程编程-线程间通信(一)
- python-Python与SQLite数据库-处理SQLite查询结果(一)
- Python类对象的创建和使用
- Python学习:1.快速搭建python环境详解编程语言
- 第一个python程序-判断登陆用户名和密码是否正确详解编程语言
- Python实现快速连接Redis数据库(python连接redis)
- 初识 Python:Hello World 和字符串操作
- 3 个提高 Python 开发效率的小工具
- 跟老齐学Python之网站的结构