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()

爬取效果:

结尾

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

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

相关推荐
烛阴7 小时前
简单入门Python装饰器
前端·python
好开心啊没烦恼7 小时前
Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy
面朝大海,春不暖,花不开8 小时前
使用 Python 实现 ETL 流程:从文本文件提取到数据处理的全面指南
python·etl·原型模式
失败又激情的man8 小时前
Scrapy进阶封装(第四阶段:中间件设置,动态UA,ip代理池)
爬虫·scrapy·中间件
2301_805054569 小时前
Python训练营打卡Day59(2025.7.3)
开发语言·python
万千思绪9 小时前
【PyCharm 2025.1.2配置debug】
ide·python·pycharm
微风粼粼11 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
云天徽上11 小时前
【PaddleOCR】OCR表格识别数据集介绍,包含PubTabNet、好未来表格识别、WTW中文场景表格等数据,持续更新中......
python·ocr·文字识别·表格识别·paddleocr·pp-ocrv5
你怎么知道我是队长11 小时前
python-input内置函数
开发语言·python
叹一曲当时只道是寻常11 小时前
Python实现优雅的目录结构打印工具
python