王者荣耀皮肤爬虫

爬取王者荣耀的高清皮肤,https://pvp.qq.com/web201605/herolist.shtml是英雄官网的网址
在这里插入图片描述
我们需要对其源码进行保存,并且使用正则表达式获取主要的信息内容(英雄id以及皮肤数量),并计算出总量。
然后问用户想要把代码保存到的完整路径。
在这里插入图片描述
审查元素得到了皮肤的图片地址。
然后就是开始下载和保存啦。

import urllib.request
import re

# 获取主页源码
url = 'https://pvp.qq.com/web201605/herolist.shtml'
a = urllib.request.urlopen(url)  # 访问网页
a = a.read()  # 读取源码
a = a.decode('gbk')  # 转码为gbk
# 获取英雄名称和ID
a = (re.compile('输入英雄不存在,请重新输入' + "(.*?)" + '英雄介绍', re.S).findall(a))[0]  # 取主要源码
id = re.compile('<li><a href="herodetail/' + '(.*?)' + '.shtml"', re.S).findall(a)  # 取id
name = re.compile('height="91" alt="' + '(.*?)' + '">').findall(a)  # 取名字
print('本次共抓取到' + str(len(id)) + '个英雄数据')
# 询问保存路径
r = True
while r:
    f = input('请输入想要保存的路径:')
    if f == '':
        print('不能为空')
    if f != '':
        r = False

# i
i = 0
for i in range(0, len(id) + 1):  # 对列表位置进行循环
    print('正在下载' + name[i])
    url1 = 'https://pvp.qq.com/web201605/herodetail/' + id[i] + '.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(name[i] + '-' + pf[i1])
        url2 = 'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + id[i] + '/' + id[i] + '-bigskin-' + str(
            i1 + 1) + '.jpg'  # 皮肤下载地址
        urllib.request.urlretrieve(url2, f + '/' + name[i] + '-' + pf[i1] + '.jpg')  # 下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值