python玩王者荣耀皮肤_python 抓取王者荣耀皮肤 代码2年了 依旧可以抓取高清 王者皮肤...

#!/usr/bin/env python

#-*- coding: utf-8 -*-

"""抓取王者荣耀皮肤"""

importrequestsfrom bs4 importBeautifulSoupfrom urllib importparseimportosclassSkin(object):def __init__(self):#英雄的json数据

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

#英雄详细页的通用url前缀信息

self.base_url= 'https://pvp.qq.com/web201605/herodetail/'

#英雄详细页url后缀信息

self.detail_url= ''

#图片存储文件夹

self.img_folder= 'skin'

#图片url的通用前缀

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

#图片url的后缀信息

self.skin_detail_url= ''

defget_hero(self):"""获取英雄的json数据"""request=requests.get(self.hero_url)

hero_list=request.json()returnhero_listdefget_hero_skin(self, hero_name, hero_no):"""获取详细页英雄皮肤展示的信息,并爬图"""url=parse.urljoin(self.base_url, self.detail_url)

request=requests.get(url)

request.encoding= 'gbk'html=request.text#获取皮肤信息的节点

soup= BeautifulSoup(html, 'lxml')

skip_list= soup.select('.pic-pf-list3')for skin_info inskip_list:#获取皮肤名称

img_names= skin_info.attrs['data-imgname']

name_list= img_names.split('|')

skin_no= 1

#循环下载皮肤图片

for skin_name inname_list:

self.skin_detail_url= '%s/%s-bigskin-%s.jpg' %(hero_no, hero_no, skin_no)

skin_no+= 1img_name= hero_name + '-' + skin_name + '.jpg'self.download_skin(img_name)defdownload_skin(self, img_name):"""下载皮肤图片"""img_url=parse.urljoin(self.skin_url, self.skin_detail_url)

request=requests.get(img_url)if request.status_code == 200:print('download-%s' %img_name)

img_path=os.path.join(self.img_folder, img_name)

with open(img_path,'wb') as img:

img.write(request.content)else:print('img error!')defmake_folder(self):"""创建图片存储文件夹"""

if notos.path.exists(self.img_folder):

os.mkdir(self.img_folder)defrun(self):"""脚本执行入口"""self.make_folder()

hero_list=self.get_hero()for hero inhero_list:

hero_no= str(hero['ename'])

self.detail_url= hero_no + '.shtml'hero_name= hero['cname']

self.get_hero_skin(hero_name, hero_no)#程序执行入口

if __name__ == '__main__':

skin=Skin()

skin.run()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值