Python代码爬取王者荣耀全英雄皮肤

Python代码爬取王者荣耀全英雄皮肤

引言

王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,使用Python代码即可完成。

准备工作

爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 王者荣耀官方网站-腾讯游戏 (qq.com)

代码实现

首先我们创建一个Python文件,然后导入os和requests模块。

python 复制代码
from queue import Queue
from urllib import parse,request
from Reptile import Requests
import os # 创建文件夹模块
import threading
q = Queue(22)

url = 'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi'

def url_json_get(p):  # 获取图片url
    data = f'''
            activityId: 2735
            sVerifyCode: ABCD
            sDataType: JSON
            iListNum: 20
            totalpage: 0
            page: {p}
            iOrder: 0
            iSortNumClose: 1
            iAMSActivityId: 51991
            _everyRead: true
            iTypeId: 2
            iFlowId: 267733
            iActId: 2735
            iModuleId: 2735
            _: 1663592877298
            '''
    html = Requests.Requests.get(url, params=data)
    for i in html.json()['List']:
        image_name = i['sProdName']  # 获取名字
        image_name = parse.unquote(image_name)  # 解析名称
        for j in range(2, 9):  # 获取2-8的图片链接
            url_data = parse.unquote(i[f'sProdImgNo_{j}']).replace('jpg/200', 'jpg/0')  # 解析网址
            q.put([image_name, url_data]) # 放置到队列中
            print(image_name, url_data)


def save_image():
    while True:  # 一直拿数据
        print(f'目前队列数量{q.qsize()}')
        try:
            data = q.get(timeout=15)  # 获取队列中的一个数据
        except q.queue.Empty:
            break
        path = os.path.join('王者荣耀图片', data[0])  # 创建文件夹
        try:
            os.makedirs(path)
        except:
            pass
        path = os.path.join(path, data[1].split('/')[-2])
        # 拼接文件名称和文件夹路径
        request.urlretrieve(data[1],path) #保存
        print(f"{data[1].split('/')[-2]}保存成功")
        # 图片保存的位置和名称


for page in range(10):  # 生产者 30个 一个人负责一个页面
    t = threading.Thread(target=url_json_get, args=(page,))
    t.start()

for page in range(20):  # 20个消费者 用来保存图片
    t = threading.Thread(target=save_image)
    t.start()

爬取效果:

结尾

爬虫是非常有趣的,因为它非常直观,视觉冲击感强,写出来也很有成就感,爬虫虽然强大,但千万不能随意爬取隐私信息。

最后,如果对文中程序有更好的建议,欢迎评论区留言。

相关推荐
青少儿编程课堂10 分钟前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门
c++·python·算法·bfs·信息学竞赛
code2cat22 分钟前
【随笔】MCP工具注解的信任边界:四个提示如何参与调用决策
python·ai agent·mcp
慢云智慧空间25 分钟前
从设备智能到空间理解,慢云科技如何重新定义智慧建筑
python·科技
浮链序26 分钟前
用 Claude Haiku 5.5 做子智能体路由,把 Agent 成本砍掉六成
人工智能·python·llm
冯一川32 分钟前
安装Pyside 6
python
估值探索者1 小时前
【Python量化系统工程实战 #08】从脚本到生产:量化系统上线 checklist 的最小闭环
java·开发语言·jvm·python·数据挖掘·数据·股票数据api接口
李可以量化1 小时前
如何开通基于 AI 打造的 A 股量化策略(下):特征工程与大模型决策落地
python
万年咸鱼2 小时前
解决C语言的内存释放机制
java·c语言·python
李可以量化2 小时前
如何开通基于 AI 打造的 A 股量化策略(上):三层策略骨架与代码落地
python
破芽2 小时前
python知识点整理02
开发语言·python