≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > Python

python 爬取英雄联盟皮肤图片的简单示例

人气:317 时间:2021-06-22

这篇文章主要为大家详细介绍了python 爬取英雄联盟皮肤图片的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的雯雯来看看吧!

一开始都是先去《英雄联盟》官网找到英雄及皮肤图片的网址:

URL = r'https://lol.qq.com/data/info-heros.shtml'

从上面网址可以看到所有英雄都在,按下F12查看源代码,发现英雄及皮肤图片并没有直接给出,而是隐藏在JS文件中。这时候需要点开Network,找到js窗口,刷新网页,就看到一个champion.js的选项,点击可以看到一个字典——里面就包含了所有英雄的名字(英文)以及对应的编号(如下图)。

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

图中红色框就是我们需要的图片地址,经过分析知道:每一个英雄及皮肤的地址只有编号不一样(http://ossweb-img.qq.com/images/lol/web201310/skin/big266000.jpg),而该编号有6位,前3位表示英雄,后三位表示皮肤。刚才找到的js文件中恰好有英雄的编号,而皮肤的编码可以自己定义,反正每个英雄皮肤不超过20个,然后组合起来就可以了。

图片地址搞掂都就可以开始写程序了:

第一步:获取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

python 爬取英雄联盟皮肤图片

第二步:从 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

python 爬取英雄联盟皮肤图片

第三步:从 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

python 爬取英雄联盟皮肤图片

执行主程序:

代码如下:


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 爬取英雄联盟图片的资料请关注四海网其它相关文章!

本文来自:http://www.q1010.com/181/18506-0.html

注:关于python 爬取英雄联盟皮肤图片的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:python

您可能感兴趣的文章

  • Pytorch获取无梯度TorchTensor中的值的简单示例
  • python办公自动化之excel的操作的简单示例
  • 解决tensorboard 可视化之localhost:6006不显示的问题
  • python爬取豆瓣电影TOP250数据的简单示例
  • python基础之文件处理知识总结
  • Python绘制地图神器folium的新人入门指南
  • Python关于OS文件目录处理的简单示例
  • python引入其他文件夹下的py文件的实现方法
  • Python 解决空列表.append() 输出为None的问题
  • python3.7.2 tkinter entry框限定输入数字的操作
上一篇:pytorch训练神经网络爆内存的实现方法
下一篇:python爬取豆瓣电影TOP250数据的简单示例
热门文章
  • Python 处理Cookie的菜鸟教程(一)Cookie库
  • python之pandas取dataframe特定行列的简单示例
  • Python解决json.dumps错误::‘utf8’ codec can‘t decode byte
  • Python通过pythony连接Hive执行Hql的脚本
  • Python 三种方法删除列表中重复元素的简单示例
  • python爬虫代码示例
  • Python 中英文标点转换示例
  • Python 不得不知的开源项目解析
  • Python urlencode编码和url拼接实现方法
  • python按中文拆分中英文混合字符串的简单示例
  • 最新文章
    • Python利用numpy三层神经网络的简单示例
    • pygame可视化幸运大转盘的简单示例
    • Python爬虫之爬取二手房信息的简单示例
    • Python之time库的简单示例
    • OpenCV灰度、高斯模糊、边缘检测的简单示例
    • Python安装Bs4及使用的简单示例
    • django自定义manage.py管理命令的简单示例
    • Python之matplotlib 向任意位置添加一个子图(axes)的简单示例
    • Python图像标签标注软件labelme分析的简单示例
    • python调用摄像头并拍照发邮箱的简单示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。