用Python爬取英雄联盟的皮肤详细示例


Posted in Python onDecember 06, 2021

一、推理原理

1.先去《英雄联盟》官网找到英雄及皮肤图片的网址:

lol.qq.com

用Python爬取英雄联盟的皮肤详细示例

2.从上面网址可以看到所有英雄都在,按下F12查看源代码,发现英雄及皮肤图片并没有直接给出,而是隐藏在JS文件中。

这时候需要点开Network,找到js窗口,刷新网页,就看到一个champion.js的选项,点击可以看到一个字典——里面就包含了所有英雄的名字(英文)以及对应的编号。

用Python爬取英雄联盟的皮肤详细示例

3.但是只有英雄的名字(英文)以及对应的编号并不能找到图片地址,于是回到网页,随便点开一个英雄,跳转页面后发现英雄及皮肤的图片都在,但要下载还需要找到原地址,这是鼠标右击选择“在新标签页中打开”,新的网页才是图片的原地址。

用Python爬取英雄联盟的皮肤详细示例

4.图中红色框就是我们需要的图片地址,经过分析知道:每一个英雄及皮肤的地址只有编号不一样

用Python爬取英雄联盟的皮肤详细示例

二、推理代码

第一步:获取js字典

def path_js(url_js):
    res_js = requests.get(url_js, verify = False).content
    html_js = res_js.decode("gbk")
    pat_js = r'"keys":(.*?),"data"'
    enc = re.compile(pat_js)
    list_js = enc.findall(html_js)
    dict_js = eval(list_js[0])
    return dict_js

第二步:从 js字典中提取到key值生成url列表

def path_url(dict_js):
    pic_list = []
    for key in dict_js:
        for i in range(20):
            xuhao = str(i)
            if len(xuhao) == 1:
                num_houxu = "00" + xuhao
            elif len(xuhao) == 2:
                num_houxu = "0" + xuhao
            numStr = key+num_houxu
            url = r'http://ossweb-img.qq.com/images/lol/web201310/skin/big'+numStr+'.jpg'
            pic_list.append(url)
    print(pic_list)
    return pic_list

第三步:从 js字典中提取到value值生成name列表

def name_pic(dict_js, path):
    list_filePath = []
    for name in dict_js.values():
        for i in range(20):
            file_path = path + name + str(i) + '.jpg'
            list_filePath.append(file_path)
    return list_filePath

用Python爬取英雄联盟的皮肤详细示例

第四步:下载并保存数据

def writing(url_list, list_filePath):
    try:
        for i in range(len(url_list)):
            res = requests.get(url_list[i], verify = False).content
            with open(list_filePath[i], "wb") as f:
                f.write(res)
 
    except Exception as e:
        print("下载图片出错,%s" %(e))
        return False

第五步:执行主程序

if __name__ == '__main__':
    url_js = r'http://lol.qq.com/biz/hero/champion.js'
    path = r'./data/'   #图片存在的文件夹
    dict_js = path_js(url_js)
    url_list = path_url(dict_js)
    list_filePath = name_pic(dict_js, path)
    writing(url_list, list_filePath)

运行后会在控制台打印出每一张图片的网址:

用Python爬取英雄联盟的皮肤详细示例

在文件夹中可以看到图片已经下载好 如图:

用Python爬取英雄联盟的皮肤详细示例

到此这篇关于用Python爬取英雄联盟的皮肤详细示例的文章就介绍到这了,更多相关Python爬英雄联盟皮肤图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python删除文件示例分享
Jan 28 Python
kNN算法python实现和简单数字识别的方法
Nov 18 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
解决python 上传图片限制格式问题
Oct 30 Python
python实现电子词典
Mar 03 Python
Python实现JS解密并爬取某音漫客网站
Oct 23 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 #Python
python 管理系统实现mysql交互的示例代码
Python中super().__init__()测试以及理解
Dec 06 #Python
浅析Python中的随机采样和概率分布
Dec 06 #Python
python程序的组织结构详解
Python中异常处理用法
Nov 27 #Python
python中的3种定义类方法
Nov 27 #Python
You might like
PHP session 会话处理函数
2016/06/06 PHP
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
Python与Redis的连接教程
2015/04/22 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
详谈python http长连接客户端
2017/06/12 Python
Python3爬楼梯算法示例
2019/03/04 Python
对Django中内置的User模型实例详解
2019/08/16 Python
高中毕业生自我鉴定范文
2013/09/26 职场文书
教师实习自我鉴定
2013/12/14 职场文书
合同协议书格式
2014/04/18 职场文书
代办社保委托书范文
2014/10/06 职场文书
超市采购员岗位职责
2015/04/07 职场文书
大学生逃课检讨书
2015/05/04 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
原生JS实现飞机大战小游戏
2021/06/09 Javascript
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers