Python爬虫实战之 爬取王者荣耀皮肤

王者荣耀是目前非常火的一款游戏,相信大家都对其中的人物很感兴趣,那么今天就带大家来爬取王者荣耀的皮肤,可以选一款喜欢的来当电脑壁纸。

第一步,拿到url地址
第二步,获取各个人物皮肤数据
第三步,保存文件

第一步,拿到url地址

这是网站的初始url

https://pvp.qq.com/web201605/wallpaper.shtml

进入网站后,通过分析,我们观察到壁纸的链接是在li标签下的a标签中
Python爬虫实战之 爬取王者荣耀皮肤_第1张图片
但查看网页源码发现,其中没有找到想要的链接数据,考虑接口分析

在network抓包工具中,考虑图片链接都放在列表中,从中找到带有worklist字样的数据,从中找到了我们想要的数据。

需要注意,是第二个而不是第一个,因为第二个worklist包含了第一页的20张图片所有数据,而第一个只有一张图的数据
Python爬虫实战之 爬取王者荣耀皮肤_第2张图片
这就是图片的链接,只是经过了一些处理:
在这里插入图片描述
在Headers下,可以从中得到目标的url

url = 'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?
activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=4&totalpage=0&p
age=0&iOrder=0&iSortNumClose=1&jsoncallback=jQuery17107950852797281271_1
597938787695&iAMSActivityId=51991&_everyRead=true&iTypeId=1&iFlowId=2677
33&iActId=2735&iModuleId=2735&_=1597938787974'

需要注意的是,请求时要把其中的callback参数删掉

url = 'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=4&totalpage=0&page=0&iOrder=0&iSortNumClose=1&iAMSActivityId=51991&_everyRead=true&iTypeId=1&iFlowId=267733&iActId=2735&iModuleId=2735&_=1597938787974'

第二步,获取各个人物皮肤数据

继续分析抓包里的数据,可以发现有20个人物的图片链接及图片人物名称(每一个人物有8张图片)。下面来获取这些数据。
Python爬虫实战之 爬取王者荣耀皮肤_第3张图片
先导入相关模块:

import requests
import json
from urllib import parse    # 解码网站
from urllib import request  # 用于之后的文件下载
import os   # 保存文件

构造简单的requests请求:

headers = {
     
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
    ,'referer':'https://pvp.qq.com/web201605/wallpaper.shtml'
}

resp = requests.get(url,headers=headers)

# 将json数据转换为字典数据
result = resp.json()
print result

结果如下:
Python爬虫实战之 爬取王者荣耀皮肤_第4张图片
接下来要把List下的各图片链接提取出来,并做一个遍历,代码如下:

datas = result['List']
for data in datas:
	# 获取图片url,并解码(其中要把url中的200换成0,这样的图片更大)
    image_urls = [parse.unquote(data['sProdImgNo_{}'.format(i)]).replace('200','0') for i in range(1,9)]
    
    # 获取图片的名字,并解码
    name = parse.unquote(data['sProdName'])
    print(image_urls)
    print(name)
    print('=' * 50)

这一步结果如下,可以看到20个人物的图片链接及名字已经爬取到:
Python爬虫实战之 爬取王者荣耀皮肤_第5张图片

第三步,保存文件

这里咱们使用之前导入的os模块,这样保存文件更方便,代码如下:

# 创建文件夹 在文件夹image下创建各自的名字文件
dirpath = os.path.join('image',name)
os.mkdir(dirpath)

# 下载图片(用enumerate()获取到各链接的索引值)
for index, image_url in enumerate(image_urls):
	request.urlretrieve(image_url, os.path.join(dirpath, '%d.jpg' % (index + 1)))
        print('%s下载完成!' % (image_url))

结果如下:
Python爬虫实战之 爬取王者荣耀皮肤_第6张图片
Python爬虫实战之 爬取王者荣耀皮肤_第7张图片
Python爬虫实战之 爬取王者荣耀皮肤_第8张图片

这里需要注意,要提前在py文件所在文件夹创建image文件,否则报错:提示文件路径不存在。

至此,咱们对王者荣耀皮肤就爬取完毕了,感兴趣的小伙伴自己可以试一试!
 
 
 
实战部分
第一篇:Python爬虫实战之 爬取全国理工类大学数量+数据可视化

爬虫基础部分
第一篇:Python的要点(搭建环境、安装配置、第三方库导入方法详细过程)
第二篇:Python爬虫初探(一)——了解爬虫
第三篇:Python爬虫初探(二)——爬虫的请求模块
第四篇:Python爬虫初探(三)——爬虫之正则表达式介绍
第五篇:Python爬虫初探(四)——爬虫之正则表达式实战(爬取图片)
第六篇:Python爬虫初探(五)——爬虫之xpath与lxml库的使用
第七篇:Python爬虫初探(六)——爬虫之xpath实战(爬取高考分数线信息)
第八篇:Python爬虫初探(七)——爬虫之Beautifulsoup4介绍(Ⅰ)
第九篇:Python爬虫初探(八)——爬虫之Beautifulsoup4介绍(Ⅱ)
第十篇:Python爬虫初探(九)——爬虫之Beautifulsoup4实战(爬取豆瓣信息)
第十一篇:Python爬虫初探(十)——爬虫总结

爬虫进阶部分
第一篇:Python爬虫进阶(一)——爬虫之动态数据与selenium
第二篇:Python爬虫进阶(二)——爬虫之多任务模块(Ⅰ)
第三篇:Python爬虫进阶(三)——爬虫之多任务模块(Ⅱ)
第四篇:Python爬虫进阶(四)——爬虫之多任务模块(Ⅲ)

你可能感兴趣的:(python,爬虫,python)