【Python项目】——爬取王者荣耀皮肤

【Python项目】——爬取王者荣耀皮肤

一、项目说明

原作者:尚学堂 李老师
学习视频来源:bilibili——王者荣耀皮肤爬取
注:仅供自学者学习交流使用,侵权联系必删
在这里插入图片描述

二、项目知识点

1、必要库:os、requests、lxml
注:若没有安装可以在terminal命令窗口利用pip install requests这样的命令安装。若速度较慢可加上镜像源 -i https://pypi.tuna.tsinghua.edu.cn/simple这样会加快安装速度。
2、向网站服务器发送请求
3、接收回复
4、解析HTNML
5、标头伪装自身
6、保存文件,建立相应英雄文件夹
7、为防止被封,可利用sleep减慢访问和下载速度
在这里插入图片描述

三、项目实现代码

import requests
import os
from lxml import etree  #解析HTML代码
from time import sleep
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.63'}

hero_list_url = 'https://pvp.qq.com/web201605/js/herolist.json'
hero_list_resp = requests.get(hero_list_url, headers = headers)
#print(hero_list_resp.json())#每个大括号是一个json数据
for h in hero_list_resp.json():
    ename = h.get('ename')
    cname = h.get('cname')
    if not os.path.exists(cname):
        os.makedirs(cname)#创建文件夹
#访问英雄主页
    hero_info_ur1 = f'https://pvp.qq.com/web201605/herodetail/{ename}.shtml'
    hero_info_resp = requests.get(hero_info_ur1, headers = headers)
    hero_info_resp.encoding ='gbk'
    e = etree.HTML(hero_info_resp.text)
    names = e.xpath('//ul[@class="pic-pf-list pic-pf-list3"]/@data-imgname')[0]
    names = [name[0:name.index('&')] for name in names.split('|')]
    for i,n in enumerate(names):
        resp = requests.get(f'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{ename}/{ename}-bigskin-{i+1}.jpg')
        with open(f'{cname}/{n}.jpg','wb') as f:  #wb为write操作 bytes方式,f为此文件名字
            f.write(resp.content)
        print(f'已下载:{n}的皮肤')
        sleep(1)

四、输出结果展示

这里
在这里插入图片描述只展示了部分文件夹哦!
在这里插入图片描述
高清的原图,真时是不要太爽!
在这里插入图片描述

总结

遇到挫折,要有勇往直前的信念,马上行动,坚持到底,决不放弃,成功者决不放弃,放弃者绝不会成功。成功的道路上,肯定会有失败;对于失败,我们要正确地看待和对待,不怕失败者,则必成功;怕失败者,则一无是处,会更失败。
小伙伴们注意在练习的时候不要侵权欧!禁止商用!!!!
好了这就是今天的项目练习加学习的全部分享!
我们下次再见!
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯宝最帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值