苹果刺客 发表于 2021-6-1 10:42

台服lol皮肤批量下载

本帖最后由 苹果刺客 于 2021-6-1 12:59 编辑

import requests
import os
from bs4 import BeautifulSoup

hero_url = 'https://lol.garena.tw/'
url = 'https://lol.garena.tw/champions'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')
api_url = 'https://mock.mengxuegu.com/mock/608b9c271d10f86a7bd6aa6c/garena_text/Hero_list'
hero = requests.get(api_url).json()
hero_len = len(hero['Hero_list'])
# 155个
box = soup.find_all("a", class_="box")

for i in range(0, hero_len):
    # print(hero['Hero_list']['ENM'])
    # 根据汉字名创建文件夹
    cnm = hero['Hero_list']['CNM']
    os.mkdir(cnm)

    hero_short_url = box.attrs['href']
    complete_url = hero_url + hero_short_url
    # print(complete_url)
    res_2 = requests.get(complete_url)
    soup_2 = BeautifulSoup(res_2.text, 'lxml')

    swiper_wrapper = soup_2.find_all("div", class_='swiper-slide')

    skin_num = int(len(swiper_wrapper) / 2)
    # 共计多少个皮肤
    skin_total = swiper_wrapper[-skin_num:]
    for w in range(0, skin_num):
      print(skin_total.text)
      skin_title = str(skin_total.text).replace('/', '')
      skin_img_src = skin_total.find('img').get('src')
      print(skin_img_src)
      tui_res = requests.get(skin_img_src)
      # './image/img3.png'
      filename = './' + cnm + '/' + skin_title + '.jpg'
      with open(filename, "wb") as f:
            f.write(tui_res.content)



本人菜鸟一枚,还望诸君勿喷,此代码没有加入异步动作,运行会比较慢,
加入此段代码skin_title = str(skin_total.text).replace('/', '')
是因为有K/DA皮肤,在路径保存的时候,会扰乱本地保存路径
本来是想转义字符串,可是尝试了好多次,没有成功,
如有更好的方法,请大家多多指教

liangqz 发表于 2021-6-1 12:30

这个可以

user002 发表于 2021-6-1 12:41

不错不错

苹果刺客 发表于 2021-6-1 13:03

liangqz 发表于 2021-6-1 12:30
这个可以

感谢大家的支持

传说中的yang哥 发表于 2021-6-1 13:31

这个可以

High99 发表于 2021-6-1 14:06

强啊,收藏了

mootutu 发表于 2021-6-1 14:10

不错啊
收藏一下

zhx79 发表于 2021-6-1 14:10

台服啊,可以吗?

苹果刺客 发表于 2021-6-1 14:14

zhx79 发表于 2021-6-1 14:10
台服啊,可以吗?

可以的哦,只是有点慢
因为我没加异步操作:rggrg

kchsw 发表于 2021-6-1 14:31

哦这是下皮肤原画吗
页: [1] 2
查看完整版本: 台服lol皮肤批量下载