前言
一 、数据来源分析:
- 确定需求, 采集那个网站上面什么数据
- 抓包分析, 通过开发者工具进行抓包分析
二、代码实现步骤过程:
- 发送请求, 对于刚刚分析得到url地址发送请求
- 获取数据, 获取服务器返回响应数据
- 解析数据, 提取我们想要数据内容, 音频试音, 陪玩照片, 基本陪玩数据
- 保存数据, 保存本地文件夹
开发环境
模块使用
- import os: 文件操作
- import re: 正则
- import requests: 数据请求
- import json: json数据转换
- import csv: 保存csv数据
代码实现
请求数据
对于分析得到url地址发送请求 headers是否添加, 看网站, 网站没什么反爬的话, 可以不用加
url = 'https://www.peiwantv.com/api'
data = {
'act': 'userList',
'page': page,
'type': '1',
'sex': '2',
'voice': '1',
'order': '1',
}
response = requests.post(url=url, data=data)
解析数据
提取我们想要数据内容, 音频试音, 陪玩照片, 基本陪玩数据 键值对取值:返回数据字典数据类型, 字典取值 根据冒号左边的内容[键], 提取冒号右边的内容[值]
for index in response.json()['data']['rows']:
dit = {
'昵称': index['nickname'],
'价格': index['price'],
'热度': index['exp'],
'简介': index['summary'].replace('\n', ''),
'详情页': f'https://www.peiwantv.com/user/{index["uid"]}',
}
audio_url = 'https://static.peiwan.tv/' + json.loads(index['voice'])['url']
img_url = f'https://www.peiwantv.com/user/avatar/{index["uid"]}?image…ew2/1/interlace/1/ignore-error/1/w/100/format/jpg'
保存数据
陪玩详情数据
import os.path
c = open('data.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(c, fieldnames=[
'昵称',
'价格',
'热度',
'简介',
'详情页',
])
csv_writer.writeheader()
csv_writer.writerow(dit)
print(dit)
保存试音音频、图片数据
img_content = requests.get(url=img_url).content
audio_content = requests.get(url=audio_url).content
title = index["nickname"]
file = f'data\\{title}\\'
if not os.path.exists(file):
os.makedirs(file)
with open(file + title + '.jpg', mode='wb') as img:
img.write(img_content)
with open(file + title + '.mp3', mode='wb') as audio:
audio.write(audio_content)
👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇
|