欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python-王者荣耀皮肤爬取

程序员文章站 2022-05-08 13:06:05
...

王者荣耀皮肤爬取

爬虫一般思路

  1. 发起请求,获取响应
    通过http库,对目标站点进行请求。等同于自己打开浏览器,输入网址库:urllib、requests;
    服务器返回请求内容一般为:html、文档、json字符串等。

  2. 解析内容:
    寻找自己需要的信息,利用正则表达式或者其它库获取目标;
    常用的库:re、beautifulsoup4

  3. 保存数据

实列

import requests
# import pprint

import time
start_time = time.time()

# 1.分析目标网页,确定爬取的ur1的路径
url = 'https://pvp.qq.com/web201605/js/herolist.json'

# 2.发送请求 -- requests 校浏览器发生请求,获取相应数据
response = requests.get(url)
data = response.json()
# print(data)
# pprint.pprint(data)

# 3.解析数据 -- json模块:把json字符串转换成python交互的数据类型
for data1 in data:
    cname = data1['cname'] # 英雄的名称
    ename = data1['ename'] # 英雄的ID

    try:
        skin_name = data1['skin_name'].split('|') # 英雄皮肤的名称
    except Exception as e:
        print(e)

    print(cname, ename, skin_name)

    # 构间皮肤数量的循环:
    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)
        img_data = requests.get(skin_url).content

        #保存数据
        with open('img\\' + cname + '-' + skin_name[skin_num-1] + '.jpg', mode="wb") as f:
             print('正在下载图片:', cname + '-' + skin_name[skin_num-1])
             f.write(img_data)

end_time = time.time()
print('花费时间:', end_time - start_time)
相关标签: 笔记 python