LOL爬蟲小工具是一個利用python指定爬取LOL高清壁紙、皮膚圖片、頭像圖片、圖標等下載工具,通過網(wǎng)上的爬蟲教程結(jié)合愛好寫了個爬蟲,能爬取LOL國服官網(wǎng)資料庫里的圖片。研究了一下python,寫出了這么個小東西。
爬取英雄聯(lián)盟高清圖片
運行結(jié)果
# 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() + '⁄⁄英雄相關(guān)⁄⁄' + 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 | 從官網(wǎng)下載最新英雄頭像、皮膚原畫、技能圖標')
print(' 2 | 從官網(wǎng)下載最新最新裝備圖 ')
print('———————————————————————————————————————')
n = input('請輸入數(shù)字以選擇功能⁄n')
n = int(n)
if n > 0 and n < 3:
swicth = {
1: Features_1,
2: Features_2,
}
swicth[n]()
input('數(shù)據(jù)保存在app同目錄⁄n按隨意鍵退出⁄n')
else:
print('錯誤輸入⁄n程序即將退出')
time.sleep(2)
if __name__ == "__main__":
main()
lol最新超長名字注冊起名工具是一個lol超長取id中文16字游戲最新9-10字最新超長名字起名app,LOL的貌似只能取9-16字名字具體忘記了。最多能夠創(chuàng)建16個漢字游戲ID大家下載使用。app說
lol超長id修改工具,能夠?qū)⒛愕腎D改成最多16個中文字符的超長ID,讓你成為全場最靚的仔。lol超長id修改工具最新版本,適配新版國服客戶端,直接下載后開啟游戲在游戲內(nèi)進行修改。16字中文ID也就
LOL創(chuàng)建多人訓(xùn)練營是一個英雄聯(lián)盟創(chuàng)建多人訓(xùn)練對局5V5訓(xùn)練營工具,對于玩lol游戲的玩家都知道訓(xùn)練營是怎么回事,訓(xùn)練模式只能1對1,使用app后能夠新添游戲體驗,讓玩家在訓(xùn)練模式中開黑。使用說明需先
LOL靈魂蓮華英雄電腦壁紙是一份LOL英雄聯(lián)盟新出的系列圖片靈魂蓮華英雄皮膚圖片高清壁紙大全,應(yīng)該是挺提齊全的,個人還是比較喜歡阿貍那套挺風(fēng)**的!九尾妖狐靈魂蓮華阿貍英等等。壁紙說明英雄聯(lián)盟亞索靈魂
lol草莓盒子是一個電腦端lol輔助盒子app,此款app可以幫忙玩家體驗英雄聯(lián)盟中的所有英雄的所有皮膚,此款app已破解,您可直接免費使用,皮膚只有自己才能看見,喜歡此款lol草莓盒子想要使用的朋友
絕區(qū)零尼尼微是游戲中零號空洞中的高難boss,這個boss玩家通關(guān)后能夠解鎖更高的難度,難度越高獲得的獎勵越多,下面就為大家分享絕區(qū)零尼尼微難度11打法攻略。絕區(qū)零尼尼微難度11打法攻略一、陣容搭配1
絕區(qū)零洗衣粉還是老牌子好是游戲中的成就之一,這個成就需要玩家達成前置條件才能解鎖,完成成就后能獲得獎勵,下面就為大家分享絕區(qū)零洗衣粉還是老牌子好成就攻略。絕區(qū)零洗衣粉還是老牌子好成就攻略1、玩家必須先
絕區(qū)零簡杜異是游戲中1.1下半卡池中的新角色,這個角色的定位是一個物理異常,不少玩家都已經(jīng)抽取該角色進行培養(yǎng),下面就為大家分享絕區(qū)零簡杜異常紊亂隊搭配攻略。絕區(qū)零簡杜異常紊亂隊攻略一、配隊推薦簡+11
絕區(qū)零實境戰(zhàn)術(shù)演練是游戲中的活動之一,這個活動需要玩家達成一定條件才能參加,玩家參加活動完成活動任務(wù)能獲得獎勵,下面就為大家分享絕區(qū)零實境戰(zhàn)術(shù)演練活動攻略。絕區(qū)零實境戰(zhàn)術(shù)演練活動攻略一、活動玩法1、活
《冰汽時代2》是由11 bit studios開發(fā)的一款生存策略類游戲,繼承了前作的核心理念。玩家將在一個被冰封的世界中建設(shè)和管理人類最后的城市,面臨嚴酷的寒冷和道德抉擇。游戲中,你需要平衡資源分配、
lol英雄聯(lián)盟云頂之弈tftactics工具是一款云頂之弈裝備查詢輔助助手,之前最火的TFT-Overlay已經(jīng)停更了,TFTactics不離開游戲的情況下獲得你需要的所有信息,當你進入比賽時,應(yīng)用會
??lol520怦然行動騷男表情包高清無水印版??是一款由5月20日播放的LOL怦然行動視頻中騷男搞笑的表情而推出的一款非常好玩的表情包,喜歡的朋友還在等什么?趕緊下載吧!lol520怦然行動騷男表情
??lol520怦然行動PDD表情包無水印最新版??是一款由5月20日播放的LOL怦然行動視頻中PDD搞笑的表情而推出的一款非常好玩的表情包喜歡的朋友趕緊下載吧!lol520怦然行動PDD表情包預(yù)覽l
??LOL英雄聯(lián)盟皮膚專家??是一款針對lol皮膚設(shè)計的皮膚轉(zhuǎn)換器,支持最新版的英雄聯(lián)盟完美換膚。使用方法:啟動這款英雄聯(lián)盟皮膚修改器之后,會彈出一連串的廣告窗口,不影響使用,關(guān)掉就是了,進入輔助主界
??lol大司馬表情包??,非常的有趣,相信不存在這個梗很多網(wǎng)友都早已熟悉了吧,當想嘲諷別人時,這是圖片是非常適合的,感興趣的朋友快來9553下載這款表情包吧!QQ表情包添加方法1、登陸qq,任意打開
LOL英雄聯(lián)盟是目前非常火爆的一款DotA類大型多人在線競技網(wǎng)游,lol的熱潮依然未過,它依然是最受玩家喜愛的大型多人在線競技游戲,隨之衍生出了許多游戲輔助工具,在此我們將搜集各類常用英雄聯(lián)盟輔助工具提供給大家,包括LOL多玩盒子,178大腳插件等知名輔助集合,以及各類LOL相關(guān)腳本及實用工具,我們給大家提供方便快捷的lol輔助工具下載!
lol英雄聯(lián)盟云頂之弈tftactics工具V2.149.0.1免費版 2.149.0.1
游戲助手 簡體中文
lol英雄聯(lián)盟云頂之弈tftactics工具V2.149.0.1免費版