首页 > 编程源码 > 【教程】20行Python代码爬取王者荣耀全英雄皮肤 (2)

【教程】20行Python代码爬取王者荣耀全英雄皮肤 (2)

楼主:微ζั͡ ั͡微 [2级] · 2019-12-19 ·  浏览524 · 编程源码 · ID:

代码实现

首先我们创建一个Python文件,然后导入os和requests模块。

按照前面的步骤,我们首先需要获取到英雄列表信息,也就是herolist.json文件,文件地址为:https://pvp.qq.com/web201605/js/herolist.json,这在调试台中可以找到。

那么我们首先就要通过这个地址获取到英雄列表信息的json数据,然后解析json数据,将有用的信息提取出来:

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

herolist = requests.get(url) # 获取英雄列表json文件herolist_json = herolist.json() # 转化为json格式

hero_name = list(map(lambda x: x['cname'], herolist.json())) # 提取英雄的名字hero_number = list(map(lambda x: x['ename'], herolist.json())) # 提取英雄的编号

这样我们就获取到了英雄名字和编号,可以输出测试一下:

拿到了英雄编号之后,事情就变得很简单了,只需拼接一下url地址即可:

http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + hero_number + '/' + hero_number + '-bigskin-1.jpg,这样可以获取到所有英雄的皮肤图片了,但是这里会有一个问题,英雄的皮肤是有多有少的,有的英雄只有两个皮肤,有的却有六七个,所以图片编号的最大值我们并不清楚,这里我采用了一个比较笨的办法,就是让一个变量从1到10依次递增去拼接图片地址,如果遇到没有的图片我们就不处理,因为没有一个英雄的皮肤超过了10个,所以我们就能获取到所有的图片了。下面看代码实现:

# 下载图片def downloadPic(): i = 0 for j in hero_number: # 创建文件夹

os.mkdir("C:\\Users\\Administrator\\Desktop\\wzry\\" + hero_name[i])

i += 1 for k in range(10): "># 进入创建好的文件夹 os.chdir("C:\\Users\\Administrator\\Desktop\\wzry\\" + hero_name[i]) i += 1 for k in range(10): # 拼接url

onehero_link = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' target='_blank'>http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(j) + '/' + str(

j) + '-bigskin-' + str(k) + '.jpg'

im = requests.get(onehero_link) # 请求url if im.status_code == 200: open(str(k) + '.jpg', 'wb').write(im.content) #

请看下个帖子

- 版权声明 - 1、本帖所有言论和图片等纯属网友个人意见,与流星社区立场无关;
2、其他单位或个人使用、转载或引用本帖时必须同时征得该帖子作者微ζั͡ ั͡微流星社区的同意;
3、备注原文地址:https://bbs.liuxingw.com/t/20181.html,可忽略第2条;
4、帖子作者需承担一切因本文发表而直接或间接导致的相关责任;
5、如本帖内容或部分内容转载自其它媒体,这并不代表本站赞同其观点和对其真实性负责;
6、如本帖若为资源类,将仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您安装或使用的设备中彻底删除上述内容;
7、如果您喜欢该程序,请支持正版软件,购买注册,可以得到更好的正版服务;
8、如本帖侵犯到任何版权或违法问题,请立即邮件告知我们,我们将及时予以处理。
0条回复 |  最后回复于2019-12-19
登录注册 后才可进行评论
签到
56人签到
已签0天
  • 46633帖子
  • 1936758热点量
  • 184952火热值