用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中的全局变量用法分析
Jun 09 Python
python numpy函数中的linspace创建等差数列详解
Oct 13 Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
Face++ API实现手势识别系统设计
Nov 21 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
python实现简单银行管理系统
Oct 25 Python
python argparse传入布尔参数false不生效的解决
Apr 20 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
python 常用的异步框架汇总整理
Jun 18 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 Stream_*系列函数
2010/08/01 PHP
php IP转换整形(ip2long)的详解
2013/06/06 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
jquery蒙版控件实现代码
2010/12/08 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
大学生军训自我鉴定
2014/02/12 职场文书
考察现实表现材料
2014/05/19 职场文书
爱我中华演讲稿
2014/05/20 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
参赛口号
2014/06/16 职场文书
图书馆标语
2014/06/19 职场文书
关于倡议书的范文
2015/04/29 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
Python实现排序方法常见的四种
2021/07/15 Python