批量下载英雄联盟官网皮肤及打包

Posted weiweivip666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量下载英雄联盟官网皮肤及打包相关的知识,希望对你有一定的参考价值。

1.没啥说的 代码上步骤我都写清楚了,下载图片用的json,re,requests模块打包用的是tarfile模块

批量下载

import requests
import time
import re
import json
#英雄联盟官网资料库里面打开F12,然后点一张图片,通过js过滤后,找到champion.js
def getLOLImages():
    #头部信息,点开champion.js中Headers可以找到 主要用于伪装浏览器
    header={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}
    url_js=https://lol.qq.com/biz/hero/champion.js
    #获取js源代码 Str bytes
    res_js = requests.get(url_js).content
    #转码 转成字符串
    html_js = res_js.decode()
    #正则表达式
    req ="keys":(.*?),"data"
    list_js = re.findall(req,html_js)
    #转成dict
    dict_js = json.loads(list_js[0])
    print(type(dict_js))   #打印类型
    pic_list = []  #定义图片列表
    for key in dict_js:
        print(key)  #英雄id
        #拼接url
        hero_num = ‘‘
        for i in range(20):
            number =str(i)
            if len(number) ==1:
                hero_num = 00+number
            elif len(number) ==2:
                hero_num = 0+number
            numstr = key+ hero_num
            url = https://game.gtimg.cn/images/lol/act/img/skin/big+numstr+.jpg
            pic_list.append(url)
        #获取图片名称
        list_filepath =[]
        path = rE:images  #设置自己本地路径存图片的地方
        for name in dict_js.values():
            for i in range(20):
                file_path = path + \+ name + str(i) + ".jpg"  #拼接
                list_filepath.append(file_path)
            #下载图片
        n =0
        for picurl in pic_list:
            res =requests.get(picurl)
            n+=1
            #获取状态码
            if res.status_code == 200:
                print("正在下载%s" %list_filepath[n])
                time.sleep(1)
                with open(list_filepath[n],wb) as f:
                    f.write(res.content)
getLOLImages()

2.打包压缩包

import os
import tarfile
#用的是.tar.gz压缩   当然你也可以用别的,如zip,但是这个.tar.gz比zip的压缩完后小很多,最小的是.tar.bz2的
#获取一下当前路径
path = os.getcwd()
print(path)    #E:pythonprojectpython_allceshi
#先获取到最顶层路径 然后拼接一下images文件夹
newpath = os.path.dirname(os.path.dirname(os.path.dirname(path)))
print(newpath)
img_path = os.path.join(newpath,images)
print(img_path)
#创建压缩包
with tarfile.open(lol.tar.gz,w:gz,encoding=utf-8) as tf:
    tf.add(img_path)

 

以上是关于批量下载英雄联盟官网皮肤及打包的主要内容,如果未能解决你的问题,请参考以下文章

我用Python爬取英雄联盟的皮肤,你试试看,你行吗?

我用Python爬取英雄联盟的皮肤,隔壁家的小弟弟都馋哭了

我用Python爬取英雄联盟的皮肤,隔壁家的小弟弟都馋哭了

哈撒给,英雄联盟全皮肤下载器来了

打造最全皮肤,Python采集英雄联盟(LOL)官网数据!

Python下载英雄联盟皮肤图片