python爬虫网页分析_python爬虫 -- 网页分析(王者荣耀英雄皮肤)

python爬虫 -- 网页分析(王者荣耀英雄皮肤)

全英雄页面,分析数据位置

XHR(XMLHttpRequest)记录ajax请求

标头, 预览, 响应

url, user-agent用户浏览器身份标识

Python代码

# 爬取王者荣耀 全英雄皮肤大图

# requests

# json

import requests # pip install requests 网络请求模块

import json

import os

# 1、分析网页 -- 确定爬去路径url, headers参数

Request_URL = 'https://pvp.qq.com/web201605/js/herolist.json'

Request_Headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'

}

# 2、发送请求 -- requests模拟浏览器发送请求,获取响应数据

response = requests.get(Request_URL, headers=Request_Headers) # get方法,返回json

data_str = response.text ################# json response.text

# print(data_str) # 查看接收到的数据文本

# 3、解析数据 -- json模块,把json字符串转化成python可交互的数据类型

# 3.1、类型转换

data_list = json.loads(data_str) # json -> python可解析,这里是列表

# print(data_list)

# 3.2、数据解析

if not os.path.exists('王者荣耀全英雄大图'):

os.makedirs('王者荣耀全英雄大图')

print('文件夹 “王者荣耀全英雄大图” 创建成功:')

else:

print('文件夹 “王者荣耀全英雄大图” 已存在:')

for ( index, data) in enumerate(data_list):

if 'skin_name' in data :

skin_list = data['skin_name'].split('|')

else:

skin_list = ['幸存者', '冷晖之枪'] # 马超异常,有2皮肤

# print(index, data, data["cname"], skin_list)

for index in range(len(skin_list)):

# 构建图片url

# 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + data['ename'] + '/' + data['ename'] +'-bigskin-' + skin_num + '.jpg'

skin_name = data['cname'] + '-' + skin_list[index] + '.jpg'

skin_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(data['ename']) + '/' + str(data['ename']) +'-bigskin-' + str(index + 1) + '.jpg'

# print(skin_name, skin_url)

# 请求皮肤大图

skin_data = requests.get(skin_url, headers=Request_Headers).content ################# 二进制图片 response.content

# 4、保存数据 -- 保存到目标文件夹中

with open('王者荣耀全英雄大图\\' + skin_name, 'wb') as f:

print('正在下载:', skin_url, '-->', skin_name)

f.write(skin_data)

运行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值