Python爬虫实战案例——王者荣耀皮肤抓取
大家好,我是你们的老朋友——南枫,今天我们一起来学习一下该如何抓取大家经常玩的游戏——王者荣耀里面的所有英雄的皮肤。
老规矩,直接上代码:
导入我们需要使用到的,也是唯一用到的库:
我们要抓取皮肤其实就是相当于抓图片,那么像这种大网站,大批量的图片它基本上是在一个文件里面,那么我们首要目的就是要找到这个文件所在地,打开浏览器调试面板,进行刷新。
刷新之后在XHR中会出现很多文件,那么我们所有皮肤图片的地址是在哪呢?在哪个文件中呢?有些人可能会老老实实的一个个去找,那么我教大家一个邪术,当然并不适用所有的网站哈。
我们要抓取所有英雄的皮肤图片,英雄的英文单词叫啥?Hero,大批量是不是要用列表装起来?那么连起来不就是herolist?我们可以去找一下有没有herolist这么一个文件夹。
可以发现的是,有这么一个文件夹,那么我们秉持着良好的学习探究精神点击进去查看一下,看看到底有没有对应的数据。
有明显的数据集,继续下去!
有些人看到这玩意就懵逼了,这啥啊?这不都乱码了嘛,不要慌,不要急,咱慢慢来,看看数据有没有规律。
可以发现的是,他这个ename是在一个一个的增加。我们先保持怀疑态度,他到底与我们的项目有没有关系,继续去找下一个特征,先暂且搁置一边。
我们要抓取的是一张张大图,也就是高清无码的皮肤图片,比如这样:
但我们放大仔细看发现,这个并不是我们的目标,因为它并不是最大,最高清的,那么到底在哪呢?继续使用邪术!!!高清无码图片,不就是大图片嘛?大的英文单词是啥?Big啊!!!那有没有这么个文件呢?
这不是在图片这块有嘛?我们双击打开看看
唉,非常明显的高清无码大图片了吧,但仔细想想,我现在只是抓到了一张而已,但王者荣耀官网可是有非常多的,那我该如何进行批量抓取呢?
你们还记得我们开头分析的那个文件嘛?就是逐渐+1的ename?这个数字是不是有什么关系呢?我们一起来看下这个目标图片的网址:
这个是517,再来看看另外的。李信这个英雄是:
数字变成了507!我们是不是可以大胆的猜测一下,这个数字就是我们找到的ename?那我们想要拿到每一张高清无码图片的话,是不是只要改变这个数字就行了?邓小平爷爷说过:实践是检验真理的唯一标准!我们进行实践不就知道了?
改成105是廉颇!
改成106是小乔!!!这里就基本确定了,如果你还不敢确定的话,那你可以去进行多次尝试得到证实。言归正传,我们的目标是要下载所有的皮肤图片,那么是不是拿到这个链接地址,然后给他改变数字就行了?直接大胆尝试!
获取到这个文件的所有数据:
获取之后他是在列表里面,那么我们就可以通过循环拿到列表里面的数据:
除了拿到ename之外,我们还拿到了cname,cname是什么?仔细观察的小伙伴应该已经发现了,cname就是每个英雄的名字,我们图片保存下来是不是还得要名字?那么cname已经给我们写好了,我们就不用自己操心了,直接提取即可。
提取下来ename数字之后,直接进行拼接:
这样就拿到了我们每一张图片的地址,直接对他们进行二次请求,为什么呢?就是因为图片是二进制数据,而前面的是json数据,那么现在获取的是图片,就要进行二次请求,进行.content。一切准备就绪,进行保存。
看看效果:
可以看到的是,不仅保存下来了,并且每一个英雄的名字也没有出现差错!你学会没有?大家看完之后一定要去进行操作哦。
相关文章:

Python爬虫实战案例——王者荣耀皮肤抓取
大家好,我是你们的老朋友——南枫,今天我们一起来学习一下该如何抓取大家经常玩的游戏——王者荣耀里面的所有英雄的皮肤。 老规矩,直接上代码: 导入我们需要使用到的,也是唯一用到的库: 我们要抓取皮肤其…...

PyTorch计算机视觉实战:目标检测、图像处理与深度学习
本书基于真实数据集,全面系统地阐述现代计算机视觉实用技术、方法和实践,涵盖50多个计算机视觉问题。全书分为四部分:一部分介绍神经网络和PyTorch的基础知识,以及如何使用PyTorch构建并训练神经网络,包括输入数据缩放…...

4D 生物打印:将时间维度融入,打造个性化动态组织
4D 生物打印技术将时间维度融入 3D 生物打印,赋予打印出的结构动态变化的能力,使其更接近于真实组织和器官的特性。要实现这一目标,需要使用智能生物材料和智能设计策略。 智能生物材料 目前用于 4D 生物打印的智能生物材料主要包括形状记忆…...
银行清算业务功能测试解析
银行清算业务是指银行间通过账户或有关货币当地清算系统,在办理结算和支付中用以清讫双边或多边债权债务的过程和方法。按地域划分,清算业务可分为国内联行清算和国际清算。常见的清算模式包括实时全额清算、净额批量清算、大额资金转账系统及小额定时清…...

CVE-2024-6387漏洞预警:尽快升级OpenSSH
OpenSSH维护者发布了安全更新,其中包含一个严重的安全漏洞,该漏洞可能导致在基于glibc的Linux系统中使用root权限执行未经身份验证的远程代码。该漏洞的代号为regreSSHion,CVE标识符为CVE-2024-6387。它驻留在OpenSSH服务器组件(也…...
学习整理在php中使用PHPExcel读取excel表列数大于Z时读取不到的解决方案
php读取excel列数大于Z时读取不到 背景解决方案关键代码 背景 表格数据超过26列, 也就是在Z列之前没有AA列及以后的情况, 测试一直都没有问题,超过,就会获取不到数据了 解决方案 private function getExcelData(){//获取excel文…...

python sklearn机械学习-数据预处理
🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…...
搜索引擎常用语法
引号 (" "): 用双引号将词组括起来,搜索引擎将返回包含完全相同短语的结果。 示例:"人工智能发展趋势" 减号 (-): 在关键词前加上减号可以排除包含特定词语的结果。 示例:人工智能 -机器学习(排除包含 “机器…...

华为智能驾驶方案剖析
华为ADS智驾方案始终坚持激光雷达毫米波雷达摄像头的多传感器融合路线,行业降本压力下硬件配置从超配逐步转向贴合实际需求,带动整体硬件成本下降。 1)单车传感器数量呈现下降趋势,包括激光雷达从3个减配至1个、毫米波雷达从6R减配至3R、摄像…...

DDR3(一)
目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础,在学习DDR3之前,我们先来学习一下SDRAM的相关知识。 1 SDRAM …...
Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章
Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章 在微服务架构中,服务发现是实现服务间通信的关键机制。Eureka作为Netflix开源的服务发现框架,与Spring Cloud Bus的集成,提供了一种动态、响应式的服务治理解决方案。本文…...

Kafka入门到精通(三)-Kafka
Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动…...

高校教师教学质量评估系统-计算机毕业设计源码03344
摘要 在高等教育中,教学质量是培养优秀人才的关键。为了提高教学质量,高校需要建立一套科学、有效的教师教学质量评估系统。本研究采用 SSM技术框架,旨在开发一款高校教师教学质量评估系统。 SSM框架作为一种成熟的Java开发框架,具…...

币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出
刚刚 ETF Store 总裁 Nate Geraci 在 X (前Twitter)平台上宣布,备受数字货币市场期待的SEC以太坊现货 ETF提案,将于7 月中旬通过美国证券交易委员会(SEC)批准。Nate Geraci透露修订后的 S-1 文件将于 7 月 …...

【FFmpeg】avio_open2函数
【FFmpeg】avio_open2函数 1.avio_open21.1 创建URLContext(ffurl_open_whitelist)1.1.1 创建URLContext(ffurl_alloc)1.1.1.1 查找合适的protocol(url_find_protocol)1.1.1.2 为查找到的URLProtocol创建UR…...

技术成神之路:设计模式(二)建造者模式
1.定义 建造者模式(Builder Pattern)是一种创建型设计模式,它允许你分步骤创建复杂对象,而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…...

基于Springboot+Vue+mysql仓库管理系统仓库进销存管理系统
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...
爬虫scrapy库精简使用大全
一、基本命令 创建项目 scrpay startproject myapp创建爬虫文件 scrapy genspider spider_name "https://www.baidu.com"运行爬虫文件 scrapy crawl spider_name一、使用代理ip 打开中间件middlewares.py,增加以下代码 class ProxyMiddleware:def process…...
Qt - 如何在新线程 (QThread)中使用一个进程 (QProcess)?
在Qt中,QThread 用于处理后台任务,而 QProcess 用于启动和管理外部程序。如果你想在一个新的 QThread 中使用 QProcess,你需要了解 QProcess 并不是专门为在特定线程中运行而设计的。实际上,QProcess 通常在创建它的线程ÿ…...
Qt绘制多线段
最近画辅助线有刚需。 画图准备增加绘制多线段功能。 有哪些方法呢? QPainter Class | Qt GUI 5.15.17 void QPainter::drawPolyline(const QPolygon &points) QPolygon Class | Qt GUI 5.15.17 QPolygon polygon; polygon << QPoint(10, 20) <&…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...