Alex.Merceryj 发表于 2018-11-10 14:25

【搬运工】 使用python爬取英雄联盟的图片

本帖最后由 Alex.Merceryj 于 2020-7-30 15:23 编辑

首先声明,楼主不会python上个月看到 https://www.52pojie.cn/thread-797002-1-1.html 这个帖子写的LOL爬虫,捣鼓安装了python,下载的只有图片,没有英雄名字
于是乎百度搜索了一个。
原文地址 :https://blog.csdn.net/teak_on_my_way/article/details/81321509
没有最新的K/DA
在D:\LOLheroskin,效果如下:


###导入模块
import requests
from lxml import etree
import requests,json
import sys
import difflib
import os
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
# https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js 英雄列表
url='https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'

# 文件夹不存在则创建
save_dir = 'LOLHeroSkin'
if not os.path.exists(save_dir):
    os.mkdir(save_dir)

heros=json.loads(requests.get(url,headers=header).content)['hero']
for hero in heros:
    id=int(hero['heroId'])
    url='https://game.gtimg.cn/images/lol/act/img/js/hero/'+str(id)+'.js'
    skins=json.loads(requests.get(url,headers=header).content)['skins']
    for skin in skins:
      name=skin['name'].replace('/','_').replace('“','_').replace('”','_').replace(':','_').replace('"','_')
      imgUrl=skin['mainImg']
      if imgUrl=='': # 炫彩图片
            continue
      img=requests.get(imgUrl,header)
      with open(save_dir+'/'+name+'.jpg',"wb") as file:
            file.write(img.content)
      print(name+'.jpg下载成功')


print("OK")

代码不用动,对于我这种菜鸟来说,环境搭建以及库的安装比较繁琐,索性整理了一个。

楼主使用的是VS2017 集成环境。新建python项目后,在python环境右击-查看所有python环境-在powerShell中打开,输入 安装命令就可以了
下载失败可能是有的图片链接失效了吧,我也不是太明白,最后附上python.exe文件。
链接: https://pan.baidu.com/s/1eRMeJUdT_vmrKkpV22kqMw 提取码: 4ava 复制这段内容后打开百度网盘手机App,操作更方便哦


2020.07.30更新说明:
时隔两年,终于把这段python整明白了,并且优化了

新浪装修 发表于 2018-11-10 14:34

支持一下

jccforever 发表于 2018-11-10 14:49

楼主可否出个图文教程 谢谢 尤其的如何使用

4561pkpk 发表于 2018-11-10 17:39

感谢分享!!

Alex-Mercer 发表于 2018-11-11 13:32

感谢楼主分享:lol

Right_Hai 发表于 2018-11-11 16:07

下载失败http://ossweb-img.qq.com/images/lol/web201310/skin/big28006.jpgname is K/DA 伊芙琳
下载失败http://ossweb-img.qq.com/images/lol/web201310/skin/big84009.jpgname is K/DA 阿卡丽
下载失败http://ossweb-img.qq.com/images/lol/web201310/skin/big103015.jpgname is K/DA 阿狸
下载失败http://ossweb-img.qq.com/images/lol/web201310/skin/big145014.jpgname is K/DA 卡莎
下载失败http://ossweb-img.qq.com/images/lol/web201310/skin/big145015.jpgname is K/DA 卡莎 至臻
错误原因是因为英雄名字编码问题,我只发现问题没解决,请问你找到解决办法了吗

Right_Hai 发表于 2018-11-11 16:52

Right_Hai 发表于 2018-11-11 16:07
下载失败http://ossweb-img.qq.com/images/lol/web201310/skin/big28006.jpgname is K/DA 伊芙琳
下载失 ...

找到解决办法了,imgName = imgName.replace("/", '').decode("utf-8") 加一个decode转码,再替换‘/’对见文件夹的错误{:1_918:}

reol_233 发表于 2018-11-12 12:01

感谢楼主分享

jsjjcjx 发表于 2018-11-15 08:42

感谢分享!!

lilihuakai 发表于 2019-1-24 14:06

感谢分享
页: [1]
查看完整版本: 【搬运工】 使用python爬取英雄联盟的图片