爬取王者荣耀官网英雄皮肤高清壁纸(简易方法)

代码加详细注释。

import requests
#import os
url = "https://pvp.qq.com/web201605/js/herolist.json"   #想要爬取的网址

'''
请求头:User-Agent:简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本
在做爬虫时加上此信息,可以伪装成浏览器,如果不加很可能会被识别出为爬虫,这个一般从Chrome的开发者
工具中可以得到,在Network里面的Headers(也就是请求头)
'''

header = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}
response = requests.get(url, headers=header)    #常见的请求方法:get
hero_list = response.json()     #解析方式
hero_name = list(map(lambda x:x["cname"], hero_list))   #使用map()函数和lambda()函数

#map()会根据提供的函数对指定序列进行映射,第一个参数是函数,第二个参数是序列对象
#lambda()函数可以作为map的提供函数,它本身叫匿名函数

hero_number = list(map(lambda x:x["ename"], hero_list))

def save_IMG():
    num = 0
    for i in hero_number:
        for j in range(10):
            img_url = "https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/" + str(i) + "/" + str(i) + "-bigskin-" + str(j) + ".jpg"
            hl = requests.get(img_url)
            if hl.status_code == 200:   #这里是响应状态码,当status_code为200时,表明服务器已成功处理了请求.
                with open(r"/home/honorwh/tmp/" + hero_name[num] + str(j) + '.jpg', 'wb') as f:     #这里用with关键字和正则把存储路径精确表示.
                    f.write(hl.content)     #requests库的方法
        num += 1
save_IMG()

和之前美桌网的区别在于,这个规律相对容易找到。当练习下,继续努力。

猜你喜欢

转载自blog.csdn.net/honorwh/article/details/88785062