python爬虫:照着做,王者农药的皮肤都是你的。

2020-12-22  本文已影响0人  孤城暮雨丶

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

一、前言

听说很多小伙伴喜欢王者荣耀这个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)

结尾

爬虫是非常有趣的,因为它非常直观,视觉冲击感强,写出来也很有成就感,爬虫虽然强大,但千万不能随意爬取隐私信息。

上一篇下一篇

猜你喜欢

热点阅读