我们通过分析英雄联盟官网页面,进入到资料库页面,分析英雄所在的页面

这里有两种类型的同样的图片,一种是大图片的,一种是类似头像的小图片。我们这里抓取大图片

拿到几种图片链接分析https://game.gtimg.cn/images/lol/act/img/skin/big5000.jpg可以发现所有英雄皮肤链接url除了数字之前的都一样,而且后面的数字都是以英雄id+三位数拼接而成(三位数从000开始,但是有的英雄并不是就是依次排列,可能000,,001,002会直接跳到013)

由于英雄联盟官网也是做了反爬措施了的,所有图片也是使用局部加载的方式,在开发者工作中,可以找到一个js文件,里面包含了英雄id与英雄的对应关系

通过请求该js,获取其源代码,使用正则表达式将其提取出来,用于后面的url拼接

代码如下:

import requests
import re
import json
# 请求js数据,获取英雄对应的代码
#       "92": "Riven",
#         "68": "Rumble",
#         "13": "Ryze",
#         "113": "Sejuani",
def path_js(url):# 通过js源码,获取字节数据response = requests.get(url).content.decode('gb2312')req = '"keys":(.*?),"data"'# 将字符串转成正则对象# req = re.compile(req)list_js = re.findall(req,response)dict_js = json.loads(list_js[0])# print(dict_js)# print(len(dict_js))return dict_js'https://game.gtimg.cn/images/lol/act/img/skin/big21003.jpg'
# LOL 皮肤链接除了前面的https://game.gtimg.cn/images/lol/act/img/skin/big都一样外,后面的数字采用
# 英雄的代码+三位数(从000开始,但是中间可能会跳,如001,002,003,012,013...)# 拼接图片url
def path_url(dict_js):list_pic = []for key in dict_js:# 假设后面的数字到25,后面通过url访问是否成功判断是否有效for item in range(25):item = str(item)# item一位数拼接两个0if len(item) == 1:hero_item = '00' + item# item一位数拼接一个0elif len(item) == 2:hero_item = '0' + item# 拼接完整数字numbers_str = key + hero_item# print(numbers_str)# 拼接完整图片urlurl = 'https://game.gtimg.cn/images/lol/act/img/skin/big' + numbers_str + '.jpg'# 将所有拼接的图片url保存至列表
            list_pic.append(url)return list_pic# 拼接图片名称
def name_pic(dict_js,path):list_file_path = []for name in dict_js.values():for item in range(25):file_path = path + name + str(item) + '.jpg'list_file_path.append(file_path)return list_file_path# 保存图片
def save_pic(list_pic,list_file_path):for item in range(len(list_pic)):res = requests.get(list_pic[item])if res.status_code == 200:print('正在下载%s'%list_file_path[item])with open(list_file_path[item],'wb')as fp:fp.write(res.content)print('所有皮肤全部下载完毕!')if __name__ == '__main__':url = 'https://lol.qq.com/biz/hero/champion.js'path = 'LOL\\'# 获取英雄对应id,返回字典数据dict_js = path_js(url)# 拼接完整的图片url,返回列表数据list_pic = path_url(dict_js)# 拼接完整的图片保存路径,返回列表数据list_file_path = name_pic(dict_js,path)# 根据图片url列表和路径列表,保存图片save_pic(list_pic,list_file_path)

转载于:https://www.cnblogs.com/ilovepython/p/11540017.html

爬取英雄联盟所有英雄皮肤相关推荐

  1. python游戏辅助lol_Python爬虫实战,60行代码爬取英雄联盟全英雄全皮肤,找寻曾今那些被删除的绝版皮肤...

    学了一周多的爬虫课后终于按捺不住了,小编决定自己手动编写爬虫程序,刚好LJ在鼓励学员分享成果,优秀作品有奖励,就把自己用Python编程爬取各大游戏高清壁纸的过程整理了出来进行投稿,与大家一起分享. ...

  2. 教你用Python爬取由JavaScript产生的动态网页(以英雄联盟所有英雄的皮肤海报为例)

    常规开头:有一段时间没有写博客了,今天终于有时间来写一篇关于Python爬虫的博客.刚接触Python,我也是边学边写,如若有不对的地方也请大牛在下方留言赐教.来自神秘的作者的温馨提示:此篇文章适合一 ...

  3. python爬取千图网_python爬取lol官网英雄图片代码

    python爬取lol官网英雄图片代码可以帮助用户对英雄联盟官网平台的皮肤图片进行抓取,有很多喜欢lol的玩家们想要官方的英雄图片当作自己的背景或者头像,可以使用这款软件为你爬取图片资源,操作很简单, ...

  4. Python多线程下载英雄联盟所有英雄皮肤

    Python多线程爬取英雄联盟所有英雄皮肤 一.选择目标 二.网站分析 1.访问网页 2.获取所有英雄名称并创建对应的文件夹 3.获取单个英雄URL并放进队列中 4.访问单个英雄网页获取皮肤下载地址 ...

  5. jsoup爬取王者荣耀所有英雄背景图片

    jsoup爬取王者荣耀所有英雄背景图片 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes. ...

  6. python爬取王者_Python3爬取王者官方网站英雄数据

    爬取王者官方网站英雄数据 众所周知,王者荣耀已经成为众多人们喜爱的一款休闲娱乐手游,今天就利用python3 爬虫技术爬取官方网站上的几十个英雄的资料,包括官方给出的人物定位,英雄名称,技能名称,CD ...

  7. Python爬取王者荣耀全英雄全皮肤图片

    Python爬取王者荣耀全英雄全皮肤图片 前言 思路 分析 编码 案例源码 附图 总结 前言 以前写过类似的博客,利用Java爬取王者荣耀全英雄全皮肤图片,当时是利用 jsoup包来对目标网页进行解析 ...

  8. 如何用Python爬取LOL官网全英雄皮肤

    今天小编带你爬取LOL官网全英雄皮肤的图片 不要失望,也不要难过 接下咱们来讲讲怎么爬取LOL官网 本次案例使用到的模块 import requests import re import json 安 ...

  9. 英雄联盟:英雄台词翻译(我用双手成就你的梦想。)

    英雄联盟:英雄台词翻译(我用双手成就你的梦想.) 一.总结 一句话总结:李青:Your will,my hands. Your will my hands 1.一点寒芒先到,然后枪出如龙!? 德邦: ...

最新文章

  1. ML基石_11_HazardOfOverfitting
  2. CloudStack相关技术-主存储和二级存储
  3. maven引入CDH依赖包
  4. Restore IP Addresses leetcode java
  5. boost::log模块测量转储二进制数据的性能
  6. QDoc C ++特定的配置变量
  7. Android-Activity启动流程
  8. 第10课:动手实战基于 CNN 的电影推荐系统
  9. 2020双11,阿里巴巴集团数万数据库系统全面上云揭秘
  10. Response.Redirect 产生的“正在中止线程”错误
  11. 浅析.Net 在 winform及wpf中涉及界面交互的多线程类的封装
  12. 新手学Java,是该用记事本还是IDE?
  13. 登录注册HTML页面代码
  14. ODATA入门:$inlinecount,$top,$skip实现
  15. 土地利用/土地覆盖数据整理
  16. vmware虚拟机网络设置详解
  17. 【Ubuntu小工具安装】
  18. PS制作可爱的花豹头像
  19. android 饼图进度框,如何创建循环进度条(饼图),如指标 – Android
  20. 测试常见面试题(一)

热门文章

  1. npm无法安装cnpm
  2. python 异步加载_Python学习笔记4——爬取异步加载数据
  3. 大象的舞蹈-华润集团数字化转型之路 by彭文华
  4. FreeSwitch Sofia模块加载过程
  5. 俩个相同大小升序序列合并在一起的中位数解法
  6. 复杂的json字符串转成对象
  7. 电脑端android模拟器安装,【狼烟四起】电脑版安卓模拟器安装使用教程
  8. 网站短链生成服务器,一天时间撸个短链服务器
  9. NBA English
  10. c语言中exit(0)的作用,C语言中exit(0)与exit(1)有什么区别??