【搬运工】 使用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整明白了,并且优化了 支持一下 楼主可否出个图文教程 谢谢 尤其的如何使用 感谢分享!! 感谢楼主分享:lol 下载失败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:07
下载失败http://ossweb-img.qq.com/images/lol/web201310/skin/big28006.jpgname is K/DA 伊芙琳
下载失 ...
找到解决办法了,imgName = imgName.replace("/", '').decode("utf-8") 加一个decode转码,再替换‘/’对见文件夹的错误{:1_918:} 感谢楼主分享 感谢分享!! 感谢分享
页:
[1]