python爬虫-爬取王者荣耀所有英雄图片
2018-05-06 本文已影响57人
hello_spider
1.环境
python3.6
需要用到的库: re、os、requests
2.简介
王者荣耀可以算得上是比较受欢迎的手游之一了,应该有不少的人都入坑过农药,我们今天的目的就是要爬取王者荣耀的高清英雄壁纸,包括这些英雄的皮肤,不废话了,go!
3.分析
首先,我们打开王者荣耀的英雄资料,附上网址
http://pvp.qq.com/web201605/herolist.shtml
然后,日常F12打开浏览器的开发者工具
可以看到这里返回了一个json数据,里面包含了英雄的名字(cname),皮肤名字(skin_name),英雄id(ename)这个id后面的皮肤有用
具体某一个英雄的网址,比如说铠
http://pvp.qq.com/web201605/herodetail/193.shtml
这个网址的构成就是http://pvp.qq.com/web201605/herodetail/ + 英雄的id(ename)+ .shtml
然后就是英雄的皮肤了,我找到的方法比较low,如果有更好的,可以q我。
铠的龙域领主的皮肤链接
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/193/193-bigskin-3.jpg
网址构成
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/ + 英雄的id(ename)/ + 英雄的id(ename)-bigskin-(1-n中的任意一个数,n代表该英雄皮肤数量)+ .jpg
4.好看的图片
冰冠公主.jpg仲夏夜之梦.jpg
至尊宝.jpg
紫霞仙子.jpg
5.代码
import requests
import random
import re
import time
import os
url = 'http://pvp.qq.com/web201605/js/herolist.json'
html = requests.get(url)
for i in range(len(html.json())):
# 英雄id
id = html.json()[i]['ename']
# 英雄名字
name = html.json()[i]['cname']
# 皮肤名字
skin_name = html.json()[i]['skin_name'].split('|')
path = 'C:\\Users\\PC\\Documents\\python\\nongyao\\skin\\' + name
if os.path.exists(path):
print('文件夹已存在')
else:
os.mkdir(path)
for j in range(len(skin_name)):
new_url = ''.join(['http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/', str(id), '/', str(id), '-bigskin-', str(j+1), '.jpg'])
time.sleep(random.randint(1, 2))
image = requests.get(new_url).content
new_path = path + '\\' + skin_name[j]
with open(new_path+'.jpg', 'wb') as f:
f.write(image)
print('正在写入:%s' % skin_name[j])