吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4997|回复: 25
收起左侧

[Python 转载] 自从学了python,我再也不缺英雄联盟的皮肤了

  [复制链接]
hmhml 发表于 2020-11-10 22:11
最近在玩英雄联盟,在官网上面看到不同英雄的皮肤,感觉设计的很不错,就想保存下来当做桌面背景。
一张张下载的话速度太慢了,所以就用python写了个代码爬取了一下。
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-


import requests   
import asyncio
import os
from aiohttp import ClientSession
import aiohttp
import json
from datetime import datetime


async def skins_downloader(semaphore, hero_id, hero_name):
    async with semaphore:
        url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/{}.js'.format(hero_id)
        dir_name = 'skins/{}'.format(hero_name)
        if not os.path.exists(dir_name):
            os.mkdir(dir_name)
        async with ClientSession(connector=aiohttp.TCPConnector(ssl=False)) as session:
            async with session.get(url) as response:
                response = await response.read()
                for skin in json.loads(response)['skins']:
                    if skin['mainImg']:
                        img_url = skin['mainImg']
                        # kda女团皮肤名带斜杠,replace掉
                        path = os.path.join(dir_name, '{}.jpg'.format(skin['name'].replace('/', ''), ))
                        async with session.get(img_url) as skin_response:
                            with open(path, 'wb') as f:
                                print('\rDownloading [{:^10}] {:<20}'.format(hero_name, skin['name']), end='')
                                f.write(await skin_response.read())


def hero_list():
    return requests.get('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js').json()['hero']


async def run():
    semaphore = asyncio.Semaphore(30)
    heroes = hero_list()
    tasks = []
    for hero in heroes:
        tasks.append(asyncio.ensure_future(skins_downloader(semaphore, hero['heroId'], hero['title'])))
    await asyncio.wait(tasks)


if __name__ == '__main__':
    start_time = datetime.now()
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run())
    loop.close()
    end_time = datetime.now()
    time_diff = (end_time - start_time).seconds
    print('\nTime cost: {}s'.format(time_diff))

免费评分

参与人数 8吾爱币 +4 热心值 +8 收起 理由
xhx814100 + 1 + 1 我很赞同!
D2432110140 + 1 + 1 用心讨论,共获提升!
金色传说 + 1 + 1 我很赞同!
YuFeng13 + 1 用心讨论,共获提升!
iceee_creammm + 1 我很赞同!
萌泰大法师 + 1 可以可以学习了
jewejin + 1 + 1 谢谢@Thanks!
zjun777 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

eydin 发表于 2020-11-10 22:27
自从我用了你的方法,我以后再也不能玩英雄联盟了
Oohuo 发表于 2020-11-10 23:02
https://oohuo.lanzouj.com/ipFA4i9psvg
打包好的exe地址,下载后在当前文件夹创建一个“skins”文件夹,双击运行即可
有帮助麻烦给个热心
有帮助麻烦给个热心
有帮助麻烦给个热心
有帮助麻烦给个热心

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
我的明天 + 1 谢谢@Thanks!
和光同尘2015 + 1 + 1 我很赞同!

查看全部评分

隋戈子 发表于 2020-11-10 23:27

他的意思是,需要你自己新建一个名为“skins”的文件夹
ll018213 发表于 2020-11-10 22:32
要是有打包的exe文件就好了,配置python环境太难了,还需要很多模块
列明 发表于 2020-11-10 22:46
兄弟,編譯一個exe啊,在綫等,挺急的!
lsy832 发表于 2020-11-10 22:49
都从游戏开始的兴趣
堕落神棍 发表于 2020-11-10 23:13
Oohuo 发表于 2020-11-10 23:02
https://oohuo.lanzouj.com/ipFA4i9psvg
打包好的exe地址,下载后在当前文件夹创建一个“skins”文件夹, ...

试一试看看效果
堕落神棍 发表于 2020-11-10 23:14
Oohuo 发表于 2020-11-10 23:02
https://oohuo.lanzouj.com/ipFA4i9psvg
打包好的exe地址,下载后在当前文件夹创建一个“skins”文件夹, ...

没看到skins文件夹
五月何欢 发表于 2020-11-11 12:26
ll018213 发表于 2020-11-10 22:32
要是有打包的exe文件就好了,配置python环境太难了,还需要很多模块

打包一点点代码  打包下来太大了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 23:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表