当前位置: 首页 > news >正文

王者荣耀道具页面爬虫(json格式数据)

首先这个和英雄页面是不一样的,英雄页面的图片链接是直接放在源代码里面的,直接就可以请求到,但是这个源代码里面是没有的
在这里插入图片描述
虽然在检查页面能够搜索到,但是应该是动态加载的,源码中搜不到该链接
在这里插入图片描述

然后就去看看是不是某个接口中返回的数据
刷新了一下返回了一个json
在这里插入图片描述
估计一些数据在这里面,我们下载下来试试
在这里插入图片描述
没错,那接下来就是简单的拼接了
下面是实现code

import requests
import csv
from urllib.request import urlretrieve
import json

# 1. 获取JSON数据
url = "https://pvp.qq.com/web201605/js/item.json"
try:
    response = requests.get(url)
    response.raise_for_status()  # 检查HTTP错误
    data = response.json()
except Exception as e:
    print(f"获取数据失败: {e}")
    exit()

# 2. 提取item_id和item_name
items = []
for item in data:
    try:
        items.append({
            "item_id": item["item_id"],
            "item_name": item["item_name"]
        })
    except KeyError:
        print(f"跳过无效数据项: {item}")
        continue

#载图片
print(items)
for item in items:
    try:
        img_url = f"https://game.gtimg.cn/images/yxzj/img201606/itemimgo/{item['item_id']}.png"
        urlretrieve(img_url, f"D:/小说/王者荣耀武器道具/{item['item_name']}.png")
        print(f"下载成功: {item['item_name']}.png")
    except Exception as e:
        print(f"下载失败 {item['item_name']}.png: {str(e)[:50]}...")

相关文章:

  • 线程、多线程以及线程池的关系与用法
  • Xinference大模型配置介绍并通过git-lfs、hf-mirror安装
  • 【使用 Java 调用命令行工具:完整指南】
  • Vue 3 Diff 算法深度解析:与 Vue 2 双端比对对比
  • 【机器学习】基于t-SNE的MNIST数据集可视化探索
  • 【Vue3+Vite指南】全局引入SCSS文件后出现Undefined mixin?一招解决命名空间陷阱!
  • 高频面试题(含笔试高频算法整理)基本总结回顾27
  • 模型蒸馏系列——开源项目
  • 小测验——根据已有obj文件,自己写出网格投影至2d
  • 【Pycharm】Pycharm无法复制粘贴,提示系统剪贴板不可用
  • 二叉树的性质和实现
  • 【新能源汽车研发测试能力建设深度解析:设备、趋势与行业展望】
  • 4.1 Ref/TypedRef 类型推导原理剖析
  • 时间序列重采样与pandas的resample方法是如何实现的?
  • Canoe Panel常用控件
  • 基于PSO粒子群优化的XGBoost时间序列预测算法matlab仿真
  • 蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
  • Unity AssetBundles资源加载管理器
  • 提示词工程(Prompt Engineering)
  • Spring Boot整合RabbitMQ极简教程
  • “铁血防守”制造8年最快丢球,恐惧中的阿森纳什么也做不了
  • 蔡澜回应“入ICU观察”称未至于病危,助理:只是老毛病
  • 中国农业国际交流协会会长王守聪失联已逾半年,协会启动罢免
  • 泽连斯基承认乌情报部门刺杀俄军高官
  • 马上评丨机械停车库成“僵尸库”,设计不能闭门造车
  • 马上评丨发钱奖励结婚,支持婚育就该系统性发力