LOL爬虫小工具是一个利用python指定爬取LOL高清壁纸、皮肤图片、头像图片、图标等下载工具,通过网上的爬虫教程结合爱好写了个爬虫,能爬取LOL国服官网资料库里的图片。研究了一下python,写出了这么个小东西。
爬取英雄联盟高清图片
运行结果
# coding=utf-8
import requests
import re
import json
import os
import urllib
import time
import threading
from queue import Queue
def getHttpStatusCode(url):
try:
request = requests.get(url)
httpStatusCode = request.status_code
return httpStatusCode
except requests.exceptions.HTTPError as e:
return e
def Get_Hero_Jsurl(queue):
url = 'https://lol.qq.com/biz/hero/champion.js'
response = requests.get(url).content.decode('gb2312')
regular = r'data":(.*?),"version":"'
dict_js = json.loads(re.findall(regular, response)[0])
for _item in dict_js:
EN = dict_js[_item]['id']
queue.put(EN.format(id=_item))
def Stitching_JS_links(name_en):
link = 'https://lol.qq.com/biz/hero/{}.js'.format(name_en)
return link
def Parsing_hero_JS(url):
response = requests.get(url).content.decode('gb2312')
regular = r'data":(.*?),"version":"'
js_data = json.loads(re.findall(regular, response)[0])
result = {
'name_CN': js_data['name'] + ' ' + js_data['title'],
'name_EN': js_data['id'],
'skins': js_data['skins'],
'skill': js_data['spells'],
'passive': js_data['passive'],
}
return result
def Download_hero_resources(detail_url_list: Queue, id):
while len(detail_url_list.queue):
hero_name = detail_url_list.get()
Metadata = Parsing_hero_JS(Stitching_JS_links(hero_name))
path = os.getcwd() + '⁄⁄英雄相关⁄⁄' + Metadata['name_CN']
if not os.path.exists(path + '⁄⁄头像'):
os.makedirs(path + '⁄⁄头像')
if not os.path.exists(path + '⁄⁄皮肤'):
os.makedirs(path + '⁄⁄皮肤')
if not os.path.exists(path + '⁄⁄技能'):
os.makedirs(path + '⁄⁄技能')
# 下载皮肤和头像图 [img]https://game.gtimg.cn/images/lol/act/img/skin/big1000.jpg[/img]
for item_skin in Metadata['skins']:
url_0 = 'https://game.gtimg.cn/images/lol/act/img/skin/big{}.jpg'.format(
item_skin['id'])
url_1 = 'https://game.gtimg.cn/images/lol/act/img/skin/small{}.jpg'.format(
item_skin['id'])
urllib.request.urlretrieve(
url_0,
path + '⁄⁄皮肤⁄⁄' + item_skin['name'].replace('/', '') + '.jpg')
urllib.request.urlretrieve(
url_1,
path + '⁄⁄头像⁄⁄' + item_skin['name'].replace('/', '') + '.jpg')
pass
# 下载技能图 [img]https://game.gtimg.cn/images/lol/act/img/spell/AnnieR.png[/img]
for item_skill in Metadata['skill']:
url_3 = 'https://game.gtimg.cn/images/lol/act/img/spell/{}.png'.format(
item_skill['id'])
save_path = path + '⁄⁄技能⁄⁄' + item_skill[
'name'] + '_' + item_skill['id'].replace(hero_name,
'') + '.png'
if (getHttpStatusCode(url_3) != 404):
urllib.request.urlretrieve(url_3, save_path.replace('/', '-'))
url_3 = 'https://game.gtimg.cn/images/lol/act/img/passive/{}'.format(
Metadata['passive']['image']['full'])
if (getHttpStatusCode(url_3) == 404):
url_3 = 'https://game.gtimg.cn/images/lol/act/img/spell/{}'.format(
Metadata['passive']['image']['full'])
save_path = path + '⁄⁄技能⁄⁄' + Metadata['passive'][
'name'] + '_P' + '.png'
# test = getHttpStatusCode(url_3)
urllib.request.urlretrieve(url_3, save_path.replace('/', '-'))
def Features_1():
detail_url_queue = Queue(maxsize=1000)
thread = threading.Thread(target=Get_Hero_Jsurl, args=(detail_url_queue, ))
html_thread = []
thread.start()
for i in range(20):
thread2 = threading.Thread(target=Download_hero_resources,
args=(detail_url_queue, i))
html_thread.软件end(thread2)
start_time = time.time()
print('将在2秒后启动多线程下载')
time.sleep(2)
for i in range(20):
html_thread[i].start()
sum_num = len(detail_url_queue.queue)
thread.join()
for i in range(20):
html_thread[i].join()
time_ = time.time() - start_time
print('共下载了{}位英雄资源'.format(sum_num))
print("用时: {}分{}秒".format(int(time_ // 60), int(time_ % 60) + 1))
def Features_2():
hero_js = 'https://lol.qq.com/biz/hero/item.js'
response = requests.get(hero_js).content.decode('gb2312')
正则 = r'data":(.*?),"tree'
list_js = re.findall(正则, response)
dict_js = json.loads(list_js[0])
Item_name = {}
Item_url = {}
if not os.path.exists(os.getcwd() + '⁄⁄装备'):
os.makedirs(os.getcwd() + '⁄⁄装备')
for i in dict_js:
Item_name[i] = dict_js[i]['name']
url0 = 'https://game.gtimg.cn/images/lol/act/img/item/'
url1 = '.png'
Item_url[i] = url0 + i + url1
p = 0
for i in Item_url:
urllib.request.urlretrieve(
Item_url[i],
os.getcwd() + '⁄⁄装备⁄⁄' + Item_name[i] + '.png')
p += 1
_JD = (p / len(Item_url)) * 100
print('已完成 ', end='')
print('%.2lf' % _JD, end=' %⁄n')
def main():
print('LOL爬虫小工具 作者:艾斯托维亚')
print('———————————————————————————————————————')
print(' 1 | 从官网下载最新英雄头像、皮肤原画、技能图标')
print(' 2 | 从官网下载最新最新装备图 ')
print('———————————————————————————————————————')
n = input('请输入数字以选择功能⁄n')
n = int(n)
if n > 0 and n < 3:
swicth = {
1: Features_1,
2: Features_2,
}
swicth[n]()
input('数据保存在app同目录⁄n按随意键退出⁄n')
else:
print('错误输入⁄n程序即将退出')
time.sleep(2)
if __name__ == "__main__":
main()
lol最新超长名字注册起名工具是一个lol超长取id中文16字游戏最新9-10字最新超长名字起名app,LOL的貌似只能取9-16字名字具体忘记了。最多能够创建16个汉字游戏ID大家下载使用。app说
lol超长id修改工具,能够将你的ID改成最多16个中文字符的超长ID,让你成为全场最靓的仔。lol超长id修改工具最新版本,适配新版国服客户端,直接下载后开启游戏在游戏内进行修改。16字中文ID也就
LOL创建多人训练营是一个英雄联盟创建多人训练对局5V5训练营工具,对于玩lol游戏的玩家都知道训练营是怎么回事,训练模式只能1对1,使用app后能够新添游戏体验,让玩家在训练模式中开黑。使用说明需先
LOL灵魂莲华英雄电脑壁纸是一份LOL英雄联盟新出的系列图片灵魂莲华英雄皮肤图片高清壁纸大全,应该是挺提齐全的,个人还是比较喜欢阿狸那套挺风**的!九尾妖狐灵魂莲华阿狸英等等。壁纸说明英雄联盟亚索灵魂
lol草莓盒子是一个电脑端lol辅助盒子app,此款app可以帮忙玩家体验英雄联盟中的所有英雄的所有皮肤,此款app已破解,您可直接免费使用,皮肤只有自己才能看见,喜欢此款lol草莓盒子想要使用的朋友
绝区零尼尼微是游戏中零号空洞中的高难boss,这个boss玩家通关后能够解锁更高的难度,难度越高获得的奖励越多,下面就为大家分享绝区零尼尼微难度11打法攻略。绝区零尼尼微难度11打法攻略一、阵容搭配1
绝区零洗衣粉还是老牌子好是游戏中的成就之一,这个成就需要玩家达成前置条件才能解锁,完成成就后能获得奖励,下面就为大家分享绝区零洗衣粉还是老牌子好成就攻略。绝区零洗衣粉还是老牌子好成就攻略1、玩家必须先
绝区零简杜异是游戏中1.1下半卡池中的新角色,这个角色的定位是一个物理异常,不少玩家都已经抽取该角色进行培养,下面就为大家分享绝区零简杜异常紊乱队搭配攻略。绝区零简杜异常紊乱队攻略一、配队推荐简+11
绝区零实境战术演练是游戏中的活动之一,这个活动需要玩家达成一定条件才能参加,玩家参加活动完成活动任务能获得奖励,下面就为大家分享绝区零实境战术演练活动攻略。绝区零实境战术演练活动攻略一、活动玩法1、活
《冰汽时代2》是由11 bit studios开发的一款生存策略类游戏,继承了前作的核心理念。玩家将在一个被冰封的世界中建设和管理人类最后的城市,面临严酷的寒冷和道德抉择。游戏中,你需要平衡资源分配、
lol英雄联盟云顶之弈tftactics工具是一款云顶之弈装备查询辅助助手,之前最火的TFT-Overlay已经停更了,TFTactics不离开游戏的情况下获得你需要的所有信息,当你进入比赛时,应用会
lol520怦然行动骚男表情包高清无水印版是一款由5月20日播放的LOL怦然行动视频中骚男搞笑的表情而推出的一款非常好玩的表情包,喜欢的朋友还在等什么?赶紧下载吧!lol520怦然行动骚男表情
lol520怦然行动PDD表情包无水印最新版是一款由5月20日播放的LOL怦然行动视频中PDD搞笑的表情而推出的一款非常好玩的表情包喜欢的朋友赶紧下载吧!lol520怦然行动PDD表情包预览l
LOL英雄联盟皮肤专家是一款针对lol皮肤设计的皮肤转换器,支持最新版的英雄联盟完美换肤。使用方法:启动这款英雄联盟皮肤修改器之后,会弹出一连串的广告窗口,不影响使用,关掉就是了,进入辅助主界
lol大司马表情包,非常的有趣,相信不存在这个梗很多网友都早已熟悉了吧,当想嘲讽别人时,这是图片是非常适合的,感兴趣的朋友快来9553下载这款表情包吧!QQ表情包添加方法1、登陆qq,任意打开
LOL英雄联盟是目前非常火爆的一款DotA类大型多人在线竞技网游,lol的热潮依然未过,它依然是最受玩家喜爱的大型多人在线竞技游戏,随之衍生出了许多游戏辅助工具,在此我们将搜集各类常用英雄联盟辅助工具提供给大家,包括LOL多玩盒子,178大脚插件等知名辅助集合,以及各类LOL相关脚本及实用工具,我们给大家提供方便快捷的lol辅助工具下载!