首页 > 其他分享 >爬虫 - 爬取王者荣耀所有皮肤图片

爬虫 - 爬取王者荣耀所有皮肤图片

时间:2024-12-27 16:54:58浏览次数:4  
标签:info hero 王者 img url 爬虫 爬取 num name

结果展示

在这里插入图片描述

安装

pip install requests logger

代码

import json
import os
import re
from concurrent.futures import ThreadPoolExecutor

import requests
from loguru import logger


def parse_url(url, b=False):
    try:
        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", }
        res = requests.get(url, headers=headers)
        res.encoding = "GBK"
        assert res.status_code == 200, "Code not is 200"
        return res.content if b else res.text
    except:
        pass


def download_img(img_url, hero_name, hero_img, num):
    b_data = parse_url(img_url, b=True)
    if b_data is None:
        return
    with open(hero_img, "wb") as f:
        f.write(b_data)
    logger.success(f"{hero_name} 第{num}张皮肤图片 下载完毕")


def process_hero(id, name):
    logger.info(f"{id}\t{name}\t处理中...")

    hero_dir = f"./英雄皮肤/{name}"
    if not os.path.exists(hero_dir):
        os.makedirs(hero_dir, exist_ok=True)

    with ThreadPoolExecutor(max_workers=20) as pool:
        for num in range(1, 20):
            hero_img = f"{hero_dir}/皮肤_{num}.png"
            if os.path.exists(hero_img):
                logger.warning(f"{hero_img}已下载过,跳过")
                continue
            img_url = f"https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{id}/{id}-bigskin-{num}.jpg"
            pool.submit(download_img, img_url, name, hero_img, num)


def start():
    api_url = "https://game.gtimg.cn/images/yxzj/web201706/js/heroid.js"
    text = parse_url(api_url)
    search_result = re.search('var module_exports = ({.*?})', text, re.S)
    hero_info_str = search_result.group(1)
    hero_info_str = re.sub("'", '"', hero_info_str)
    hero_info_dict = json.loads(hero_info_str)

    with ThreadPoolExecutor(max_workers=10) as pool:
        for hero in hero_info_dict:
            name, id = hero_info_dict[hero], hero
            pool.submit(process_hero, id, name)


if __name__ == '__main__':
    start()


标签:info,hero,王者,img,url,爬虫,爬取,num,name
From: https://blog.csdn.net/MarkAdc/article/details/144773045

相关文章

  • 啤酒行业竞争分析:Python爬虫技术揭示不为人知的秘密!
    在数字化时代,啤酒行业的竞争形势正经历着前所未有的变化。作为一名数据爱好者,我决定用Python爬虫技术来捕捉这一动态,并进行深入的数据分析。以下是我如何通过Python爬虫获取啤酒行业竞争形势数据,并将其保存到桌面进行分析的全过程。探索啤酒行业竞争形势:Python爬虫与数据分......
  • 计算机毕业设计hadoop+spark+hive薪资预测 招聘推荐系统 招聘可视化大屏 招聘爬虫 Pyt
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • 51jobduoyehtml爬虫程序代码QZQ2
    importrequestsimportosimportreimportjsonimportcertifios.environ[‘REQUESTS_CA_BUNDLE’]=certifi.where()#注意cookie的值有时效性,当用不了的时候就更新一下。基础链接,去除原有的pageNum参数base_url=‘https://we.51job.com/api/job/search-pc?api_k......
  • 计算机毕业设计Python+Spark知识图谱酒店推荐系统 酒店价格预测系统 酒店可视化 酒店
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • 计算机毕业设计Python+卷积神经网络租房推荐系统 租房大屏可视化 租房爬虫 hadoop spa
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • 计算机毕业设计PySpark+PyFlink+Hive地震预测系统 地震数据分析可视化 地震爬虫 大数
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • 爬虫基础之爬取 某漫画网站
    网站: 漫画大全_漫画分类检索_好看的漫画-漫客栈本案列中所使用的模块:requestsrelxml  fromlxmlimportetree分析步骤:1.选择一本漫画打开2.接着打开我们的开发者工具 F12or右击鼠标因为漫画是图片形式存在的点击过滤图片数据在左下角数据报中找到我......
  • 【最新原创毕设】基于PPH的花涧订购系统+00332(免费领源码)可做计算机毕业设计JAVA、PHP
    摘 要近年来,电子商务的快速发展引起了行业和学术界的高度关注。花涧订购系统旨在为用户提供一个简单、高效、便捷的花卉购物体验,它不仅要求用户清晰地查看所需信息,而且还要求界面设计精美,使得功能与页面完美融合,从而提升系统的可操作性。因此,我们需要深入研究信息内容,并利用......
  • python爬虫实验:用Python爬取链家指定数据--附完整代码(基于requests和BeautifulSoup实
    1、前言 本实验实现了对链家房屋名字,所在小区,装饰,是否核验,楼层,总楼层以及租金进行爬取,仅供学习使用。2、url分析第二页:https://cd.lianjia.com/ershoufang/pg2/第三页:https://cd.lianjia.com/ershoufang/pg3/故第i页的url为:https://cd.lianjia.com/ershoufang/pg{i}/......
  • 高级技术文章:使用 Kotlin 和 Unirest 构建高效的 Facebook 图像爬虫
    引言随着大数据和人工智能技术的发展,社交媒体数据的价值日益凸显。Facebook作为全球最大的社交平台之一,拥有海量的用户生成内容。本文旨在指导开发者如何通过编程手段,合法合规地从Facebook获取图像数据,以支持研究和商业分析。Kotlin与Unirest简介Kotlin语言Kotl......