如果你是一名撸友,那么你对LOL英雄皮肤应该是相当的喜欢的,毕竟有些皮肤用起来会让我们的手感得心应手的。
我们先来看看僧哥的新皮肤
- 首先先对<https://lol.qq.com/>分析一波
1.既然要拿取到英雄的皮肤,得先找英雄的资料库吧
2.点击资料库,查看英雄的详情,再右键点检查(随便点一个英雄)
- 点击箭头,移动到阿狸小姐姐的位置就可以看图片的网址啦,这一步是我们要获取皮肤的重要一步哦~
3.获取js的URL
- 拿到js源代码,进行分析,再下载我们的英雄皮肤。
4.分析这么多了,上源码。(从前面的分析,再结合源代码,理清好自己思路哈)
import requests
import re
import json
# 1.请求网站,获取数据
def path_js(url_js):
req_js = requests.get(url_js).content.decode("gbk")
req = '"keys":(.*?),"data"'
req = re.compile(req)
list_js = re.findall(req, req_js)
dict_js = json.loads(list_js[0])
return dict_js
# 2.拼接url
def path_url(dict_js):
global hero_numbers
pic_list = []
for key in dict_js:
for item in range(20):
str_number = str(item)
if len(str_number) == 1:
hero_numbers = "00" + str_number
elif len(str_number) == 2:
hero_numbers = '0' + str_number
numbers_t = key + hero_numbers
url = " https://ossweb-img.qq.com/images/lol/web201310/skin/big" + numbers_t + '.jpg' # 图片的URL
pic_list.append(url)
return pic_list
# 3.下载图片名称
def name_pic(dict_js, path):
list_file_path = []
for name in dict_js.values():
for item in range(20):
file_path = path + name + str(item) + '.jpg'
list_file_path.append(file_path)
# print(list_file_path)
return list_file_path
# 4.下载图片
def download_pic(pic_list, list_file_path):
for item in range(len(pic_list)):
res = requests.get(pic_list[item], verify=True)
if res.status_code == 200:
print("正在下载%s" % list_file_path[item])
with open(list_file_path[item], 'wb') as f:
f.write(res.content)
print("所有皮肤下载完成")
# 程序入口
if __name__ == '__main__':
# js源代码
url = 'https://lol.qq.com/biz/hero/champion.js' # 获取champion.js的URL
path = r".\\皮肤\\"
# 1.请求网站,获取数据
dict_js = path_js(url)
# 2.拼接url
url_list = path_url(dict_js)
# 3.下载图片名称
list_file_path = name_pic(dict_js, path)
# 4.下载图片
download_pic(url_list, list_file_path)
-
效果图走一波(美滋滋)。。
--------------------------------------------------------分割线--------------------------------------------------------------
--------------------------------------------------------分割线--------------------------------------------------------------
- 高清大图
思路理清的小伙伴,抓紧代码撸起来
没有理清思路的小伙也不用着急哈,认真分析代码和讲解图。当然咯,也可以来问我哈~~~
关于面向对象编程不理解的小伙伴,大家可以私下来联系我,会为小伙伴一一解答。。。