这里只展示代码,具体介绍请点击下方链接。

Python爬取 | 王者荣耀英雄皮肤海报

import requests
import re
import os
import time
import winreg count = 0 # 计数用 # 获取第一次页面所以英雄的id以及名字
def first_url(url):
response = requests.get(url)
response.encoding = 'gbk'
response = response.text
id_name = re.findall('<li><a href=.*?/(\d{3}).*?alt=.*?>(.*?)</a></li>', response, re.S)
return id_name # 获取英雄皮肤昵称以及获取皮肤数目
def second_url(url, name):
response = requests.get(url)
response.encoding = 'gbk'
response = response.text
# 第66行
# <ul class="pic-pf-list pic-pf-list3" data-imgname="月光之女&0|哥特玫瑰&1|绯红之刃&0|紫霞仙子&12|一生所爱&44|瓷语鉴心&1">
response = re.findall('<ul class=.*?data-imgname="(.*?)">', response)
response = response[0].split('|')
skin_names = []
for i in response:
names = re.sub('[^\u4e00-\u9fa5]', '', i) + ' ' + name
skin_names.append(names)
return skin_names def download(url, skin_names, path):
num = len(skin_names) # 获取英雄皮肤数目,以控制循环次数
times = str(num) # 将皮肤个数字符化,用于文件名称显示皮肤个数
name = skin_names[0].split(' ')[-1] # 这里是获取英雄名字,如露娜,用于后面皮肤全称的拼接
path = path + '/' + name + ' ' + times + '张' # 皮肤存储路径
if not os.path.exists(path): # 如果路径不存在,则自动创建
os.mkdir(path)
for n in range(0, num): # 循环
skin_url = url + str(n + 1) + '.jpg' # 皮肤图片的链接
image_path = path + '/' + skin_names[n] + '.jpg' # 每张皮肤的命名
global count # 定义全局变量,用于统计皮肤下载张数
count = count + 1
print(f' 第{count}张 正在下载>>{name}<<的第{str(n + 1)}张皮肤,共{times}张')
with open(image_path, 'wb') as f: # 皮肤图片下载并保存
f.write(requests.get(skin_url).content)
time.sleep(0.3) def get_desktop():
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders') # 利用系统的链表
zm = winreg.QueryValueEx(key, "Desktop")[0] # 获取的是Unicode类型数据
return str(zm) # Unicode转化为str并返回 def main():
path = f'{get_desktop()}\\王者荣耀角色皮肤图片'
print(path)
if not os.path.exists(path):
os.mkdir(path)
url = 'https://pvp.qq.com/web201605/herolist.shtml'
id_name = first_url(url)
# 拼接链接
for i in id_name:
hero_url = f'http://pvp.qq.com/web201605/herodetail/{i[0]}.shtml'
skin_names = second_url(hero_url, i[1]) # i[1]是英雄的名字,比如露娜,云中君等
skin_url = f'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{i[0]}/{i[0]}-bigskin-'
download(skin_url, skin_names, path) if __name__ == '__main__':
main()

Python爬取 | 王者荣耀英雄皮肤海报的更多相关文章

  1. python 爬取王者荣耀英雄皮肤代码

    import os, time, requests, json, re, sys from retrying import retry from urllib import parse "& ...

  2. 利用python爬取王者荣耀英雄皮肤图片

    前两天看到同学用python爬下来LOL的皮肤图片,感觉挺有趣的,我也想试试,于是决定来爬一爬王者荣耀的英雄和皮肤图片. 首先,我们找到王者的官网http://pvp.qq.com/web201605 ...

  3. python学习--第二天 爬取王者荣耀英雄皮肤

    今天目的是爬取所有英雄皮肤 在爬取所有之前,先完成一张皮肤的爬取 打开anacond调出编译器Jupyter Notebook 打开王者荣耀官网 下拉找到位于网页右边的英雄/皮肤 点击[+更多] 进入 ...

  4. Python 爬取 "王者荣耀.英雄壁纸" 过程中的矛和盾

    1. 前言 学习爬虫,最好的方式就是自己编写爬虫程序. 爬取目标网站上的数据,理论上讲是简单的,无非就是分析页面中的资源链接.然后下载.最后保存. 但是在实施过程却会遇到一些阻碍. 很多网站为了阻止爬 ...

  5. 用Python爬取"王者农药"英雄皮肤

    0.引言 作为一款现象级游戏,王者荣耀,想必大家都玩过或听过,游戏里中各式各样的英雄,每款皮肤都非常精美,用做电脑壁纸再合适不过了.本篇就来教大家如何使用Python来爬取这些精美的英雄皮肤. 1.环 ...

  6. 用Python爬取"王者农药"英雄皮肤 原

    padding: 10px; border-bottom: 1px solid #d3d3d3; background-color: #2e8b57; } .second-menu-item { pa ...

  7. python爬取王者荣耀全英雄皮肤

    import os import requests url = 'https://pvp.qq.com/web201605/js/herolist.json' herolist = requests. ...

  8. python爬虫---爬取王者荣耀全部皮肤图片

    代码: import requests json_headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win ...

  9. python 爬取王者荣耀高清壁纸

    代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

随机推荐

  1. Asp.NetCore3.1 WebApi 获取配置json文件中的数据

    下面只是做一个简单的测试: 1:定义好appsetting.Json文件的配置信息如下: { "Logging": { "LogLevel": { " ...

  2. idea控制台中文乱码解决办法

    也可以通过idea右下角的设置,但是properties文件是不能设置的,这个只能在file->setting->file encodings 设置

  3. Kickstart部署之HTTP架构

    原文转自:https://www.cnblogs.com/itzgr/p/10029527.html作者:木二 目录 一 准备 1.1 完整架构:Kickstart+DHCP+HTTP+TFTP+PX ...

  4. [源码解析] 深度学习流水线并行 PipeDream(2)--- 计算分区

    [源码解析] 深度学习流水线并行 PipeDream(2)--- 计算分区 目录 [源码解析] 深度学习流水线并行 PipeDream(2)--- 计算分区 0x00 摘要 0x01 前言 1.1 P ...

  5. ReScript 与 TypeScript,谁是前端圈的“当红辣子鸡”

    摘要: ReScript 和 TypeScript 的出现都是为了更好地使用JavaScript,但两者还是有很大的不同. 本文分享自华为云社区<[云创共驻]ReScript 和 TypeScr ...

  6. MySQL——字符集

    -- 字符集:是一个系统支持的所有抽象字符的集合 MySQL数据库的字符集(包括两个部分): 1.字符集:character 2.校对规则:collation MySQL中常见的字符集: utf8 l ...

  7. 控制台:控制台艺术字 & 为控制台输出增加样式(console.log( ))

    控制台/代码文档LOGO 除了知乎的控制台,大部分的代码文档都有这样的字符logo. 下面这个网站可以自动生成符号艺术字: Text to ASCII Art Generator (TAAG) 控制台 ...

  8. vue父组件中调用子组件的方法

    Vue项目中如何在父组件中直接调用子组件的方法: 方案一:通过ref直接调用子组件的方法: //父组件中 <template> <div> <Button @click= ...

  9. C# 中 async 和 await 的基本使用

    C# 中 async 和 await 的基本使用 前言 经常在 C# 的代码中看到以 Async 结尾的方法,大概知道意为异步方法,但不知道怎么使用,也不知道如何定义. 对于"同步" ...

  10. POJ1321——棋盘问题

    http://poj.org/problem?id=1321 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解 ...