python高清壁纸_爬虫 抓取王者荣耀所有英雄皮肤高清壁纸(完美版本)

[python]代码库import urllib.request

import json

import os

import re

# 皮肤下载地址

skin_link = 'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'

# 英雄主页

hero_link = 'https://pvp.qq.com/web201605/herodetail/'

# 英雄数据文件

json_link = 'https://pvp.qq.com/web201605/js/herolist.json'

# 载入英雄数据

json_data = urllib.request.urlopen(json_link)

# 获取英雄列表

hero_list = json.loads(json_data.read().decode('utf-8'))

# 显示英雄数量

print('本次共抓取到' + str(len(hero_list)) + '个英雄数据')

# 询问保存路径

r = True

while r:

des_dir = input('请输入想要保存的路径:')

if des_dir == '':

print('不能为空')

if des_dir != '':

if not os.path.exists(des_dir):

os.mkdir(des_dir)

r = False

for hero in hero_list:

hero_name = hero['cname']

ename = str(hero['ename'])

print('正在下载' + hero_name)

# 不使用直接读取json文件的皮肤数据原因是,官方的json文件里面的英雄皮肤写的不全

# skin_name = hero['skin_name']

# if not skin_name:

# skin_name = hero['skin_title']

# pf = skin_name.split('|') # 文本分割

url1 = hero_link + ename + '.shtml' # 英雄主页网址

url1 = ((urllib.request.urlopen(url1)).read()).decode('gbk') # 获取源码,并且转码为gbk

pf = re.compile('data-imgname="' + '(.*?)' + '">', re.S).findall(url1) # 取出皮肤名字

pf = pf[0]

"""删除沉余字符"""

pf = pf.replace('&', '', )

pf = pf.replace('0', '', )

pf = pf.replace('1', '', )

pf = pf.replace('2', '', )

pf = pf.replace('3', '', )

pf = pf.replace('4', '', )

pf = pf.replace('5', '', )

pf = pf.replace('6', '', )

pf = pf.replace('7', '', )

pf = pf.replace('8', '', )

pf = pf.replace('9', '', )

pf = pf.split('|') # 文本分割

print(pf)

for i1 in range(0, len(pf)):

print(hero_name + '-' + pf[i1])

# 皮肤图片下载地址

img_url = skin_link + ename + '/' + ename + '-bigskin-' + str(i1 + 1) + '.jpg'

# 皮肤保存路径

skin_dir = des_dir + '/' + hero_name

if not os.path.exists(skin_dir):

os.mkdir(skin_dir)

urllib.request.urlretrieve(img_url, des_dir + '/' + hero_name + '/' + hero_name + '-' + pf[i1] + '.jpg') # 下载

201903221632.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值