• python带你采集大型网游英雄皮肤图~


    前言

    嗨喽~大家好呀,这里是魔王呐 !

    开发环境以及模块的使用:

    • python 3.6

    • pycharm

    • requests >>> pip install requests

    • os 内置模块 不需要安装的

    整体流程:

    代码

    import requests # 第三方模块  pip install requests
    import pprint # 格式化输出的模块  在打印json的数据的时候,可以更加方便 查看数据信息
    import os # 内置模块 不需要安装 自带的
    import re # 内置模块 不需要安装
    
    • 1
    • 2
    • 3
    • 4

    def change_title(title):
        mode = re.compile(r'[\\\/\:\*\?\"\<\>\|]')
        new_title = re.sub(mode, '_', title)
        return new_title
    
    
    def save(title, name, img_url):
        # 我想要把每个英雄皮肤图片,单独保存在一个文件里面
        filename = f'img\\{title}\\'
        # 自动创建文件夹
        # 如果没有这个文件夹 / 没有这个路径 那么就创建这个文件夹
        if not os.path.exists(filename):
            os.mkdir(filename)
        # 获取图片内容,是要获取它一个二进制数据内容
        # 文本数据 response.text json数据 response.json()  二进制数据 response.content
        img_content = requests.get(url=img_url, headers=headers).content
        with open(filename + name + '.jpg', mode='wb') as f:
            f.write(img_content)
            print(name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    response = requests.get(url=url, headers=headers)
    # pprint.pprint(response.json())
    # 解析数据 获取 英雄ID
    # json数据提取数据 和 字典类似  根据关键字提取值  通俗的讲 根据冒号左边的内容 提取冒号右边的内容
    hero_list = response.json()['hero'] #  返回的数据内容 是列表形式
    # 通过遍历/for 循环 提取它每一个英雄ID
    
    lis = []
    for index in hero_list:
    
        hero_id = index['heroId']
        lis.append(hero_id)
        # 字符串 格式化方法
        # 对英雄的皮肤数据 url地址 发送请求 获取英雄皮肤图片数据
    
    lis = lis[27:]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

        # pprint.pprint(response_1.json())
        # 解析数据 获取英雄皮肤url地址/英雄名字/皮肤名字
        skins = response_1.json()['skins']
        for index_1 in skins:
            # 皮肤图片地址
            img_url = index_1['mainImg']
            # 英雄名字
            title = index_1['heroTitle']
            # 皮肤名字
            name = index_1['name']
            new_name = change_title(name)
            new_title = change_title(title)
    
            if img_url:
                save(new_title, new_name, img_url)
            else:
                chroma_img = index_1['chromaImg']
                save(new_title, new_name, chroma_img)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    效果












    尾语

    要成功,先发疯,下定决心往前冲!

    学习是需要长期坚持的,一步一个脚印地走向未来!

    未来的你一定会感谢今天学习的你。

    —— 心灵鸡汤

    本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

    👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇
  • 相关阅读:
    查找字符串中的子串-C版
    PyTorch学习笔记(一)
    如何选择合适的自动化测试工具?
    【猿创征文】 Vue3 企业级优雅实战 - 组件库框架 - 4 组件库的 CSS 架构
    torch 的数据加载 Datasets & DataLoaders
    06_JavaScript数组
    RocketMQ进阶:SpringBoot配置RocketMQ、延迟消息、消息可靠性、消息过滤
    以太网中的介质共享访问控制机制
    React组件应用于Spring MVC工程
    HTML人物介绍、个人设计web前端大作业、贝聿铭人物介绍(带报告3000字)
  • 原文地址:https://blog.csdn.net/python56123/article/details/126872628