本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
听说很多小伙伴喜欢王者荣耀这个moba类游戏,下面老师带大家把游戏中所有英雄的皮肤图片爬取下来一睹为快把。。。
1、分析url地址构成
2、数据的字段提取
3、记录程序运行时间
import requests # 第三方模块 import time # 时间模块 import pprint # 格式化输出模块
python 3.6
pycharm
requests
# 记录程序运行的开始时间(时间戳) start_time = time.time() # 找数据地址 url = 'https://pvp.qq.com/web201605/js/herolist.json'
# 发送网络请求 response = requests.get(url=url) json_data = response.json() # pprint.pprint(json_data)
# 数据提取 id(ename) 英雄名字(cname) 皮肤数量(skin_name) for data in json_data: cname = data['cname'] # 英雄名字 ename = data['ename'] # 英雄id(ename) try: skin_name = data['skin_name'].split('|') # 皮肤数量(skin_name) except: pass # print(cname, ename, skin_name) # 构建皮肤数量的循环 """ http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/106/106-bigskin-7.jpg http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/ + 英雄id + '/' + 英雄id + -bigskin- + 皮肤数量 + '.jpg' """ for skin_num in range(1, len(skin_name) + 1): skin_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(ename) + '/' + str( ename) + '-bigskin-' + str(skin_num) + '.jpg' # print(skin_url) # 请求每一个图片地址数据 skin_data = requests.get(skin_url).content # 图片数据的保存 英雄名字 + 皮肤名字 + 文件尾缀 with open('pic\\' + cname + '-' + skin_name[skin_num - 1] + '.jpg', mode='wb') as f: f.write(skin_data) print('保存完成:', cname + '-' + skin_name[skin_num - 1]) all_time = time.time() - start_time print('共花费时间(单位秒): ', all_time)
爬虫是非常有趣的,因为它非常直观,视觉冲击感强,写出来也很有成就感,爬虫虽然强大,但千万不能随意爬取隐私信息。