python爬虫-爬取王者荣耀所有英雄图片

网络爬虫

浏览数:157

2019-8-26

AD:资源代下载服务

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])

作者:hello_spider