手把手教你从分析到实现,王者荣耀壁纸爬虫!

【王者荣耀】全英雄无水印皮肤下载器 名称:王者荣耀全英雄无水印皮肤下载器软件:由pyinstaller打包而成平台:win10 64位有效(其他请大家自测)效果:双击运行就自动下载王者荣耀全英雄无水印皮肤, 会新建一个img文件夹存放结果图:如果大家觉得有用的话就自取,顺便免费评分或者其他啥的直接上连接吧:蓝奏云:软件:https://www.lanzous.com/i9y4jhi 密码:1wtu(2.0版在下方)已经下... 阅读详情

一、分析需要爬取的网站

①、打开官方王者荣耀壁纸网站

 

②、快捷键F12,调出控制台进行抓包

③、找到正确的链接并分析

④、查看返回数据格式

⑤、解析url链接

⑥、查看url内容是否是所需图片,发现其实是缩略图

⑦、那就去分析网站,随便点开一张壁纸,查看指定格式的链接

⑧、找到目标地址

⑨、分析目标链接和缩略图的链接区别

  • 缩略图:http://shp.qpic.cn/ishow/2735090714/1599460171_84828260_8311_sProdImgNo_6.jpg/200
  • 目标图:http://shp.qpic.cn/ishow/2735090714/1599460171_84828260_8311_sProdImgNo_6.jpg/0
  • 可以知道,将指定格式的缩略图地址后面200替换成0就是目标真是图片

二、爬虫代码

①、至此,爬虫分析完成,爬虫完整代码如下

#!/usr/bin/env python# encoding: utf-8'''#-------------------------------------------------------------------#                   CONFIDENTIAL --- CUSTOM STUDIOS#-------------------------------------------------------------------##                   @Project Name : 王者荣耀壁纸下载##                   @File Name    : main.py##                   @Programmer   : Felix##                   @Start Date   : 2020/7/30 14:42##                   @Last Update  : 2020/7/30 14:42##-------------------------------------------------------------------'''import os, time, requests, json, refrom retrying import retryfrom urllib import parse class HonorOfKings:    '''     This is a main Class, the file contains all documents.     One document contains paragraphs that have several sentences     It loads the original file and converts the original file to new content     Then the new content will be saved by this class    '''    def __init__(self, save_path='./heros'):        self.save_path = save_path        self.time = str(time.time()).split('.')        self.url = 'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=20&totalpage=0&page={}&iOrder=0&iSortNumClose=1&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=%s' % self.time[0]     def hello(self):        '''        This is a welcome speech        :return: self        '''        print("*" * 50)        print(' ' * 18 + '王者荣耀壁纸下载')        print(' ' * 5 + '作者: Felix  Date: 2020-05-20 13:14')        print("*" * 50)        return self     def run(self):        '''        The program entry        '''        print('↓' * 20 + ' 格式选择: ' + '↓' * 20)        print('1.缩略图 2.1024x768 3.1280x720 4.1280x1024 5.1440x900 6.1920x1080 7.1920x1200 8.1920x1440')        size = input('请输入您想下载的格式序号,默认6:')        size = size if size and int(size) in [1,2,3,4,5,6,7,8] else 6         print('---下载开始...')        page = 0        offset = 0        total_response = self.request(self.url.format(page)).text        total_res = json.loads(total_response)        total_page = --int(total_res['iTotalPages'])        print('---总共 {} 页...' . format(total_page))        while True:            if offset > total_page:                break            url = self.url.format(offset)            response = self.request(url).text            result = json.loads(response)            now = 0            for item in result["List"]:                now += 1                hero_name = parse.unquote(item['sProdName']).split('-')[0]                hero_name = re.sub(r'[【】:.<>|·@#$%^&() ]', '', hero_name)                print('---正在下载第 {} 页 {} 英雄 进度{}/{}...' . format(offset, hero_name, now, len(result["List"])))                hero_url = parse.unquote(item['sProdImgNo_{}'.format(str(size))])                save_path = self.save_path + '/' + hero_name                save_name = save_path + '/' + hero_url.split('/')[-2]                if not os.path.exists(save_path):                    os.makedirs(save_path)                if not os.path.exists(save_name):                    with open(save_name, 'wb') as f:                        response_content = self.request(hero_url.replace("/200", "/0")).content                        f.write(response_content)            offset += 1        print('---下载完成...')     @retry(stop_max_attempt_number=3)    def request(self, url):        '''        Send a request        :param url: the url of request        :param timeout: the time of request        :return: the result of request        '''        response = requests.get(url, timeout=10)        assert response.status_code == 200        return response if __name__ == "__main__":    HonorOfKings().hello().run()

②、详细分析链接

  • 其实前端发送的是jsonp请求,这样的数据在python不好处理,因为不是标准的json格式
  • 因为其前面JQuery1710418919222这个字符串,而知道jsonp的请求的都知道,有这个前缀,必然请求链接中有相同的callback参数,将其删除即可
  • 因此我python代码中是删除了这个参数的
  • 这个链接还有很多参数,其实我觉得很多都可以删除,但是我懒得慢慢去试
  • 这个请求链接中最重要的一个参数必然就是页码数,也就是page这个参数,iListNum=20&totalpage=0&page={}
  • 上面的三个参数是可用的,一个是20,指每页的数量,totalpage估计没啥用,page抓包发现是从0开始的,这个需要注意一下,因为下面代码需要将总页数减1
self.url = 'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=20&totalpage=0&page={}&iOrder=0&iSortNumClose=1&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=%s' % self.time[0]

③、格式选择

  • 开始运行时,让你选择想下载格式的序号,为什么是8个格式呢,看原网页就知道了,8种不同分辨率的
  • 看上面的图片,缩略图链接有1-8,对应了8中分辨率的缩略图,那么原图必然也是8种
  • 这里我默认1920*1080的,一般电脑用这个分辨率的都可以
  • 其中1的原图,你自己试下,其实也是一个缩略图,所以一般下载选择2-8
print('↓' * 20 + ' 格式选择: ' + '↓' * 20)print('1.缩略图 2.1024x768 3.1280x720 4.1280x1024 5.1440x900 6.1920x1080 7.1920x1200 8.1920x1440')size = input('请输入您想下载的格式序号,默认6:')size = size if size and int(size) in [1,2,3,4,5,6,7,8] else 6

④、下载代码分析

  • 第一次请求主要是为了获取总页数,但是请求是从0开始为第一页,所以需要减去1
  • while true中就是开始从0循环去请求地址,先找到缩略图地址,然后将缩略图的地址链接200替换成0就是目标图片地址了
  • 如果名字中有特殊字符,就将其用正则去除,不然可能会影响路径的查找
print('---下载开始...')page = 0offset = 0total_response = self.request(self.url.format(page)).texttotal_res = json.loads(total_response)total_page = --int(total_res['iTotalPages'])print('---总共 {} 页...' . format(total_page))while True:    if offset > total_page:        break    url = self.url.format(offset)    response = self.request(url).text    result = json.loads(response)    now = 0    for item in result["List"]:        now += 1        hero_name = parse.unquote(item['sProdName']).split('-')[0]        hero_name = re.sub(r'[【】:.<>|·@#$%^&() ]', '', hero_name)        print('---正在下载第 {} 页 {} 英雄 进度{}/{}...' . format(offset, hero_name, now, len(result["List"])))        hero_url = parse.unquote(item['sProdImgNo_{}'.format(str(size))])        save_path = self.save_path + '/' + hero_name        save_name = save_path + '/' + hero_url.split('/')[-2]        if not os.path.exists(save_path):            os.makedirs(save_path)        if not os.path.exists(save_name):            with open(save_name, 'wb') as f:                response_content = self.request(hero_url.replace("/200", "/0")).content                f.write(response_content)    offset += 1print('---下载完成...')

⑤、爬虫运行的结果,相同名字的放在同一个文件夹下

 

Python一键获取所有高清无码王者皮肤图片 前言 突然看到王者荣耀每个英雄的图片很不错,所有就一张一张保存了. 分析 1.打开王者荣耀官方英雄列表 2.分析接口 3.实际操作 4.调整代码 5.开始启动程序 开始 其中中间发现,获取的页面中并没有直接找到图片的地址, 所以先拿到皮肤名称拼接成图片链接,然后真正拿到高清无码皮肤图片 # -*- coding: gbk -*-# # ------------------------------... 阅读详情

相关推荐

王者荣耀英雄皮肤图片爬取

王者荣耀英雄皮肤爬取

King 2260

python 爬虫 王者荣耀高清图片 代码分享

import os import requests import json url01=r'https://pvp.qq.com/web201605/js/herolist.json' url02=r'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/105/105-bigskin-1.jpg' if 'iamges' not in os.listdir(): os.makedirs('images') res = requests.g

weixin_47095925的博客 6899

Python爬虫---王者荣耀(最详细)

标题Python爬虫—王者荣耀(最详细) 首先来到王者荣耀的首页 点击游戏壁纸进去,就会看到这些图片,大致看了一下,是我们想要的东西 点开图片看看能不能找到什么规律 可以看见每张图下面都有六个分辨率的选项,我们点两个进去看看 19201080的点开,图片很清晰。我们再点一个其他分辨率的 这个是1024768的 我们来看一下url的区别在哪里 1920*1080的url:http://shp.qpic.cn/ishow/2735120117/1606814547_84828260_690_sPr

我的博客 1万+

下载王者荣耀高清壁纸

一共有两种下载方法,一种单线程下载,一种多线程下载,运行时须创建image文件夹

m0_65384516的博客 3231

Python爬虫实战,requests模块,Python实现抓取王者荣耀全套皮肤

前言 今天带大家爬取王者荣耀全套皮肤,废话不多说,直接开始~ 开发工具 Python版本: 3.6.4 相关模块: requests模块; urllib模块; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。 思路分析 1、打开官方王者荣耀壁纸网站 网站地址:https://pvp.qq.com/web201605/wallpaper.shtml 2、快捷键F12,调出控制台进行抓包 图片 3、找到正确的链接并分析 图片 4、查看返回数据格式 图片

weixin_43649691的博客 5925

王者荣耀场景地图模型Unity3D

王者荣耀场景地图模型Unity3D,王者荣耀场景地图模型Unity3D

手把手教你从分析到实现,王者荣耀壁纸爬虫!表弟馋哭了!

一、分析需要爬取的网站 ①、打开官方王者荣耀壁纸网站 网站地址:https://pvp.qq.com/web201605/wallpaper.shtml ②、快捷键F12,调出控制台进行抓包 ③、找到正确的链接并分析 ④、查看返回数据格式 ⑤、解析url链接 ⑥、查看url内容是否是所需图片,发现其实是缩略图 ⑦、那就去分析网站,随便点开一张壁纸,查看指定格式的链接 ⑧、找到目标地址 ⑨、分析目标链接和缩略图的链接区别 缩略图:http://shp.qpic.

爬遍所有网站 917

保姆级教程:在Ubuntu 22.04上,用Chroot和xorriso定制你的专属服务器镜像(附离线包集成)

本文提供了一份详细的Ubuntu 22.04离线镜像定制教程,通过Chroot环境和xorriso工具,帮助用户打造专属服务器镜像。教程涵盖环境准备、镜像解构、系统定制、镜像重组与验证等全流程,特别适合需要在隔离网络环境中批量部署服务器的场景。

weixin_28704565的博客 445

王者荣耀壁纸上面的英雄太酷了,为什么不把它们下载下来呢?

前一段时间,看了一下王者荣耀的官网,觉得上面的壁纸不错,就准备把它们用爬虫下载下来,今天刚好有时间,就写了这篇博客,希望大家喜欢。

坚持不懈的大白的博客 4025

西门子1200PLC编程实战:OB、FC、FB与DB的深度解析与应用技巧

本文深度解析西门子1200PLC编程中OB、FC、FB与DB四大核心功能块的应用技巧。通过工厂化比喻,阐明OB作为程序总调度、FC作为可重用函数、FB作为带记忆的智能设备以及DB作为数据仓库的角色与关系,并提供实战技巧,帮助工程师构建结构清晰、易于维护的高效PLC程序。

weixin_29280657的博客 442

CTransformers: 高效的Python语言模型绑定库

CTransformers是一个为C/C++实现的Transformer模型提供Python绑定的开源库。它基于GGML库构建,旨在为开发者提供一种高效且易用的方式来在Python中使用各种流行的语言模型。支持多种流行的语言模型,如GPT-2、LLaMA、Falcon等提供统一的简单API接口支持GPU加速(CUDA和Metal)与Hugging Face Transformers和LangChain集成支持流式输出和嵌入计算。

helloaiworld的博客 1268

王者荣耀爬虫

绪论 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。所以用python进行网络爬虫是简单且快捷的。 需求分析 本...

KIDD5433的博客 1万+

从零构建:Esp32+Esp-IDF驱动ST7789屏幕并集成LVGL图形库

本文详细介绍了如何从零开始使用Esp32和Esp-IDF驱动ST7789屏幕并集成LVGL图形库。内容涵盖环境准备、SPI驱动配置、屏幕初始化、LVGL图形库集成及常见问题排查,帮助开发者快速实现高效稳定的显示解决方案。

weixin_42657024的博客 525

手把手教你使用Python网络爬虫获取王者荣耀英雄皮肤

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤欢度国庆,共度中秋。/1 前言/王者荣耀,想必大家都玩过或听过,...

pdcfighting的博客 3723

Keil MDK 5.37及之后版本 安装AC5(ARMCC)编译器详细步骤

由于Keil 5.37及之后版本不再默认安装AC5(ARMCC)编译器,这就会导致由AC5编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

s_Modesto的博客 1万+

BLDC&PMSM电机控制器硬件设计工程(八)72V 10kW电机控制器原理图工程及库文件

电机控制器基本需求:接口类型;MCU平台;通信接口;供电;信号采集;信号输出;功率;EMC或者认证需求。

小幽余生不加糖 375

python手机壁纸超清_Python爬虫-王者荣耀高清壁纸下载

绪论网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。所以用python进行网络爬虫是简单且快捷的。需求分析本次的练...

weixin_39996096的博客 991

Unreal5从入门到精通之如何解决在VR项目在头显中卡顿的问题

以前我们使用Unity开发VR,Unity提供了非常便利的插件和工具来做VR。但是由于Unity的渲染效果不如Unreal,现在我们改用Unreal来做VR了,所有的VR相关的配置和操作都要重新学习。今天就来总结一下,我在开发VR过程中碰到的所有问题。好了,以上就是我目前做VR时碰到的一些问题,希望对你有所帮助。

TxNet 2482

Python教你一键获得【王者荣耀全皮肤】~~~

额,不好意思标题后面少了"高清壁纸"几个字,既然进来了也应该不亏,本文一键撸取427张王者荣耀皮肤高清壁纸并且打包好了,文末查看获取方式。并且手把手教你撸取所有壁纸的全过程。 开篇 前几天看到同事的桌面壁纸是王者荣耀的炫酷后羿皮肤,觉得十分帅气,于是想自己也弄一个,可是王者皮肤这么多一个个点网页找太费劲,何不一把撸下来一起看呢,于是想着把所有的英雄皮肤都下载到本地的一个目录下面慢慢选多好,说干就干…那我们就开始吧。 网页分析 首先,我们进去王者荣耀官网,点进“英雄资料”界面: 按F12打开调试台,随便点击

阿旭的博客 1420

使用Python,OpenCV查找图像中的最亮点

这篇博客展示了,为什么在图像中找到最亮的点之前应用高斯模糊是至关重要的。 通过应用高斯模糊,可以将每个给定半径内的像素平均在一起。取平均值可以去除高频噪声,否则会影响cv2.minMaxLoc函数的结果。 一定要研究高斯模糊半径的恰当值。如果取值太小,将会减轻平均值的影响,而忽略了更大、更亮的区域。但是如果半径太大,将无法探测到小的明亮区域。

qq_40985985的博客 3809

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

爬虫实战|欢迎来到王者荣耀!

爬虫是一门有趣的技术,它可以让我们感受到程序的魅力,给我们带来视觉冲击感和成就感,可以极大地提高我们对编程的学习兴趣。 —————————————————————————————————————— 愿你我,都能: 遵循君子协议 合理使用技术 提高学习兴趣 今天咱们来玩一把王者荣耀。首先咱们打开王者荣耀官网: 王者荣耀​pvp.qq.com 进去之后可以看到里面有许多英雄高清皮肤壁纸 于是我就想把这些英雄皮肤的壁纸统统给扒拉到本地。首先咱们如下找到所有的英雄,再找到他们对应的皮肤 .

qq_36807888的博客 884

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

如何爬取王者荣耀高清壁纸(详细分析教程)

1、准备工作 Python 3.7 Python安装有requests模块 王者荣耀官网地址:https://pvp.qq.com/web201605/wallpaper.shtml### 2、网站分析 由于现在的电脑分辨率基本都是1920x1080,所以这里以此分辨率作为例子 2.1、首先我们分析同一图片,不同分辨率的图片,我们对比他们的...

qq_40981137的博客 8736

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

爬虫 jsonp_python爬虫实战手把手教你从分析到实现,王者荣耀壁纸爬虫

泰迪学院公众号ID:taidixueyuan一、分析需要爬取的网站1.打开官方王者荣耀壁纸网站:https://pvp.qq.com/web201605/wallpaper.shtml2.快捷键F12,调出控制台进行抓包3.找到正确的链接并分析4.查看返回数据格式5.解析url链接6.查看url内容是否是所需图片,发现其实是缩略图7.那就去分析网站,随便点开一张壁纸,查看指定格式的链接8...

weixin_39911998的博客 174

Python零基础之爬取王者荣耀官方网站高清壁纸(普通版)

Python零基础之爬取王者荣耀官方网站高清壁纸目标:分析过程:1. 确定目标url2. 解决url解析问题3. 图片下载解析4. 多页面的处理代码示例需要注意的问题: 目标: 1.下载王者荣耀网站游戏壁纸的高清壁纸 2.把同一个名称的壁纸放到同一个文件夹 分析过程: 1. 确定目标url 访问https://pvp.qq.com/web201605/wallpaper.shtml 发现图片地址并不在网页html源码中,检查浏览器,分析network。发现目标url有可能是: https://

kingx3的博客 5961
上一篇: 为什么我们要学Python及基础语法详解,因为必须会它才能学Python!
下一篇: 10行python代码制作笑死人不偿命的倒放gif!属实魔性
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值