前言

嗨喽~大家好呀,这里是魔王呐

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

  • requests —> 数据请求模块 需要安装 pip install requests

  • re 正则表达式 内置模块 不需要安装

  • os 文件操作模块 内置模块 不需要安装 --> 自动创建文件夹 把每个英雄都自动创建对应文件

基本套路

一. 数据来源分析

  1. 确定需求, 确定采集目标

  2. 通过开发者工具抓包分析, 分析我们想要数据内容来自于那个url地址

  • F12 或者 鼠标右键点击检查 选择 network(网络) 刷新网页

  • 去分析图片url地址是什么 —> 选择 Img 可以查找图片url地址

505 表示英雄ID

2 皮肤第几个 —> 通过皮肤名字对应他的皮肤链接

想要获取 yao 皮肤数据

  1. 向网址发送请求
  2. 获取response响应数据
  3. 提取皮肤名字
  4. 构建 皮肤 url地址
  5. 保存数据

二. 代码实现步骤

  1. 发送请求, 模拟浏览器对于url地址发送请求
  2. 获取数据, 获取服务器返回响应数据
  3. 解析数据, 提取我们想要内容, 皮肤名字
  4. 保存数据, 数据保存本地

代码

# 导入数据请求模块  ---> 第三方模块 需要 在cmd里面进行安装 pip install requests
import requests
# 导入正则模块  ---> 内置模块 不需要安装
import re
# 导入文件操作模块  ---> 内置模块 不需要安装
import os# 确定网址
link = 'https://pvp.**.com/web201605/js/herolist.json'
# 模拟伪装浏览器 ---> 请求头
headers = {# user-agent 用户代理 表示浏览器基本身份标识'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
json_data = requests.get(url=link, headers=headers).json()
# for循环遍历
for index in json_data:# 字典键值对取值 根据冒号左边的内容[键],提取冒号右边的内容[值]hero_id = index['ename']hero_name = index['cname']# 设定文件夹路径 相对路径file = f'img\\{hero_name}\\'if not os.path.exists(file):os.makedirs(file)"""1. 发送请求, 模拟浏览器对于url地址发送请求- headers 字典数据类型, 构建完整键值对- 请求头参数 可以直接在开发者工具复制粘贴- 使用什么请求方法, 根据开发者工具来"""# 确定请求url地址url = f'https://pvp.**.com/web201605/herodetail/{hero_id}.shtml'# 模拟伪装浏览器 ---> 请求头headers = {# user-agent 用户代理 表示浏览器基本身份标识'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'}# 发送请求 ---> <Response [200]> 响应对象: <>表示对象 response 响应回复 200 状态码 表示请求成功response = requests.get(url=url, headers=headers)# 乱码了 怎么办? ---> 你要根据网页编码来 response.encoding = 'gbk'# 自动识别编码response.encoding = response.apparent_encoding# 获取数据, 获取服务器返回响应数据 文本数据 print(response.text)"""解析数据 re正则  会1 不会2re.findall()  从什么地方 去找什么数据从 response.text 里面 去找 data-imgname="(.*?)"> 其中 (.*?) 就是我们要的数据"""title_list = re.findall('data-imgname="(.*?)">', response.text)[0]# 鹿灵守心&0|森&0|遇见神鹿&71|时之祈愿&94|时之愿境&42title_list = re.sub('&\d+', '', title_list).split('|')print(title_list)# for循环 for num in range(1, 6): len() 统计列表元素个数for num in range(1, len(title_list) +1):# 列表取值, 根据索引位置,索引位置从0开始计数img_name = title_list[num-1]# 构建图片url地址img_url = f'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{hero_id}/{hero_id}-bigskin-{num}.jpg'print(img_name, img_url)# 保存数据 ---> 发送请求 获取数据 二进制数据img_content = requests.get(url=img_url, headers=headers).contentwith open(file + img_name + '.jpg', mode='wb') as f:f.write(img_content)






尾语

python对英雄皮肤进行图片采集~相关推荐

  1. 喜欢玩王者荣耀的有福了,用 Python 获取英雄皮肤壁纸

    出品:Python数据之道 (ID:PyDataLab) 作者:叶庭云,来自读者投稿 编辑:Lemon 一.前言 王者荣耀这款手游,想必大家都玩过或听过,游戏里英雄有各式各样的皮肤,制作得很精美,有些 ...

  2. python采集资料库所有英雄皮肤图片包含炫彩

    前言 嗨喽!大家好呀,这里是魔王~ 开发环境以及模块的使用: python 3.6 pycharm requests >>> pip install requests os 内置模块 ...

  3. python爬取王者皮肤_Python爬取王者荣耀英雄皮肤高清图片

    前言 临下班前,看到群里有人在讨论用王者农药的一些皮肤作为电脑的壁纸,什么高清的,什么像素稍低的,网上查了一手,也有,但像素都不一样,所以,我就想着,自己去官网直接爬他的高清皮肤就好了,然后就有了这边 ...

  4. python带你采集大型网游英雄皮肤图~

    前言 嗨喽~大家好呀,这里是魔王呐 ! 开发环境以及模块的使用: python 3.6 pycharm requests >>> pip install requests os 内置 ...

  5. 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)

    教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中.(附源码) 代码展示: 保存在各自的文件夹中 美么? 让我们开始爬虫之路 开发环境 windows 10 python3. ...

  6. 【Python实战】 ---- 爬虫 爬取LOL英雄皮肤图片

    1. 分析网页数据 1.1 全部英雄网页:https://lol.qq.com/data/info-heros.shtml 1.2 查找获取所有英雄信息的地址 1.3 获取全部英雄的请求地址和请求方法 ...

  7. 用Python获取英雄联盟所有皮肤图片

    先来看一张图片. image.png 先讲解下思路,然后直接放源码,想要获取源码的同学直接拉到最下面就好. 1.爬虫第一步 首先要分析网页的DOM结构,就是英雄联盟官网,然后在下面找到英雄资料.然后在 ...

  8. Python爬虫基础--爬取王者荣耀英雄皮肤图片

    文章目录 思路分析 涉及到的知识点 Json数据说明 `herolist.json`:英雄列表 皮肤图片尺寸分析 程序说明 代码 结果(数据)分析 声明 这里只是简单介绍主要内容,详见github,仓 ...

  9. 图片链接用src不能被爬虫爬到吗_爬虫:带你一键爬取王者荣耀英雄皮肤壁纸

    一.前言 王者荣耀这款手游,想必大家都玩过或听过,游戏里英雄有各式各样的皮肤,制作得很精美,有些拿来做电脑壁纸它不香吗.本文带你利用Python爬虫一键下载王者荣耀英雄皮肤壁纸. 1. 目标 创建一个 ...

最新文章

  1. DivCo: Diverse Conditional Image Synthesis via Contrastive Generative Adversarial Network
  2. RHEL6.3 DNS高级技术二 通过DNS主从区域复制实现DNS View负载均衡和冗余备份
  3. 鸿蒙51单片机,基于C51系列单片机的交通控制系统设计
  4. c#使用FluentFtp实现一行代码实现ftp上传下载等
  5. 美柚上云 致力成为最懂女人的互联网企业
  6. 并行程序设计模式--Master-Worker模式
  7. static变量和static函数的用法摘抄
  8. 闲着看看jquery.ajax源码
  9. TYVJ1467 通往聚会的道路
  10. xxl-job使用笔记
  11. SQL:pgsql创建、查询、删除索引
  12. 定积分计算(谭浩强c语言第5版p272)
  13. 【python 保存生成的图片 (plt;opencv;PIL)】
  14. windows vista本该有却没有的功能
  15. 至少144只独角兽在等着IPO,数据不好,PE 给的估值可能保不住了
  16. 开启全面屏体验 | 手势导航 (一)
  17. Huffman编码、Shannon编码、Fano编码——《小王子》文本压缩与解压
  18. 解决Win10系统由于INF文件失效导致安卓MTP驱动安装失败的问题
  19. shell脚本基础日常练习
  20. Transaction silently rolled back because it has been marked as rollback-only

热门文章

  1. ubuntu repo安装方法
  2. openFrameworks实现的简单捕鱼游戏
  3. Excel聚光灯--双箭头指示
  4. 如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV
  5. linux 系统重启过程,linux 系统启动流程
  6. 人工智能产业链,是时候梳理一下了!
  7. ChatGPT 角色扮演调教文案收集
  8. 相机测试软件,相机篇 软件检测其实意义不大_佳能数码相机_数码影像评测-中关村在线...
  9. 3D视觉笔记(1) - 双目视觉三维测量原理
  10. 开发好APP了如何上架apple store市场