Python爬虫基础

您所在的位置:网站首页 王者荣耀图片英雄皮肤图片 Python爬虫基础

Python爬虫基础

2024-05-28 09:41| 来源: 网络整理| 查看: 265

文章目录 思路分析涉及到的知识点Json数据说明`herolist.json`:英雄列表 皮肤图片尺寸分析程序说明代码结果(数据)分析声明

这里只是简单介绍主要内容,详见github,仓库地址:hero-skin-images,下面是仓库页面截图,点击图片可直接跳转到仓库。 仓库截图

思路分析

这个项目还是比较简单的,因为很多数据都已经json数据中,我们可以很方便的从中取出我们想要的数据。至于下载皮肤图片的主要难点是拼接图片URL,这里有个小坑就是:每张图片都有5种(或者说至少是5种)尺寸的图片,我之前就只发现了其中一种,当然你可以有选择的进行下载;尺寸详见:皮肤图片尺寸分析。

涉及到的知识点

使用requests库进行网络连接,获取网址数据。

使用json库解析json文件(数据)。

使用os库创建文件夹。

字符串拼接。

Json数据说明

我已经将可能有用的json文件都下载了,并且进行了格式化(转换编码为utf8),放在了./wzry/json数据/文件夹下。或者你可以到下面提到的链接中取下载对应的文件(访问json文件URL会自动下载)。

英雄列表介绍主页:https://pvp.qq.com/web201605/herolist.shtml,有herolist.json。

herolist.json:英雄列表 说明:包含英雄id,英雄名,英雄默认皮肤(伴生皮肤:即不用花钱的),英雄类型,英雄皮肤(特指需要花钱买的皮肤,也有可能会在一些活动中会送。注意:skin_name 这个属性不一定有,比如新英雄可能就没有)。数据URL : https://pvp.qq.com/web201605/js/herolist.json举例(部分内容): [ { "ename": 522, "cname": "曜", "title": "星辰之子", "new_type": 0, "hero_type": 1, "skin_name": "归虚梦演" }, { "ename": 518, "cname": "马超", "title": "冷晖之枪", "new_type": 1, "hero_type": 1, "hero_type2": 4 } ] 存在问题并已经进行处理,详见:存在问题及解决方案。 皮肤图片尺寸分析

英雄皮肤图片信息只涉及到 herolist.json 数据,目前发现图片有5种尺寸,注意:下面的图片大小只是对应英雄的图片尺寸,猜测不是固定的,而是在一定范围内变化。

下面以英雄马超为例,英雄首页:https://pvp.qq.com/web201605/herodetail/518.shtml

形式一URL–猜测用于手机端显示猜测用途图片尺寸https://game.gtimg.cn/images/yxzj/img201606/heroimg/518/518-smallskin-1.jpg英雄头像67*67https://game.gtimg.cn/images/yxzj/img201606/heroimg/518/518-mobileskin-1.jpg小屏手机英雄背景600*410https://game.gtimg.cn/images/yxzj/img201606/heroimg/518/518-bigskin-1.jpg大屏手机英雄背景1200*530 形式二URL–猜测是壁纸猜测用途图片尺寸https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/518/518-mobileskin-1.jpg手机壁纸727*1071https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/518/518-bigskin-1.jpg电脑壁纸1920*882 程序说明

测试环境:Python3.7.1,JetBrains PyCharm Community Edition 2018.2.4 x64。

依赖:requests,json,如果没有安装requests,用 pip install requests 进行安装即可(json为内置库)。

使用说明:主程序为:./wzry/wzry.py,运行该程序会将图片下载在当前目录的五个文件夹内,如./wzry/phone-bigskin-images/;如需下载全部英雄图片,请将程序中的 break语句 注释掉。

代码 # -*-coding:utf-8 -*- """ @author: yansheng @file: wzry.py @time: 2019/9/14 """ # 爬取王者荣耀的英雄皮肤图片 import requests import json import os def mkdirs(path): """ 辅助函数:创建文件夹 :param path: 文件夹名 :return: """ # 去除首末的空格 path = path.strip() # 去除尾部 \ 符号 path = path.rstrip("\\") ''' windows下文件名中不能含有:\ / : * ? " < > | 英文的这些字符 ,这里使用"'"、"-"进行替换。 :?| 用-替换 " 用'替换 ''' # 对于文件夹,有没有.好像都是同一个文件 # replace方法默认替换所有匹配项 path = path.replace(":", "-").replace("?", "-").replace("|", "-") path = path.replace("


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3