用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中使用enumerate函数遍历元素实例
Jun 16 Python
Python的Flask框架中@app.route的用法教程
Mar 31 Python
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
python命名空间(namespace)简单介绍
Aug 10 Python
使用Python实现画一个中国地图
Nov 23 Python
python 实现方阵的对角线遍历示例
Nov 29 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 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配置文件中最常用四个ini函数
2007/03/19 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js日期联动示例
2014/05/02 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
js实现简单的倒计时
2021/01/28 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python编写Windows Service服务程序
2018/01/04 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
简述python Scrapy框架
2020/08/17 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
父亲追悼会答谢词
2014/01/17 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
党支部书记岗位责任制
2014/02/11 职场文书
逃课上网检讨书
2014/02/20 职场文书
路政管理求职信
2014/06/18 职场文书
校本教研活动总结
2014/07/01 职场文书
公证委托书标准格式
2014/09/11 职场文书
董事长岗位职责
2015/02/13 职场文书
小学学习委员竞选稿
2015/11/20 职场文书