前言
嗨喽,大家好呀~这里是魔王 ❤
环境使用:- Python 3.8
- Pycharm
- requests >>> 数据请求 第三方模块 pip install requests
- re
- win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)
- 在pycharm中点击Terminal(终端) 输入安装命令
- 去采集一个数据, 确定我们想要内容是什么?
- 通过开发者工具进行抓包分析, 分析这些数据内容 可以从哪里获取 浏览器自带工具 F12 或者鼠标右键点击检查
- 去分析地址是来自于哪里?
- 通过播放url地址里面一段参数, 去通过搜索找寻数据包
- 发送请求, 对于刚刚分析得到数据包发送请求
- 获取数据, 获取服务器返回响应数据 【 response 】
- 解析数据, 提取我们想要数据内容 url地址以及标题
- 保存数据, 把内容保存本地文件夹
import requests # 数据请求模块 第三方模块 pip install requests
import re # 正则表达式 内置模块 不需要安装
爬虫模拟浏览器对于url地址发送请求, 获取服务器返回响应数据
发送请求: 伪装模拟 headers 可以直接去开发者工具里面复制粘贴 headers请求头字典数据类型, 构建完整键值对形式 调用requests模块里面get方法对于url地址发送请求, 并且携带上headers请求头伪装 最后用response变量接受返回数据 response = requests.get(url=url, headers=headers) 表示对象, response响应对象 200状态码表示请求成功
获取数据: response.text 获取响应对象文本数据 字符串数据类型 response.json() 获取响应json字典数据 字典数据类型
数据解析: 字典取值方式, 可以直接根据键值对提取数据内容 根据冒号左边的内容提取冒号右边的内容
for page in range(5, 11):
print(f'正在采集第{page}页的数据内容')
link = f'https://v.huya.com/g/all?set_id=51&order=hot&page={page}'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
}
response = requests.get(url=link, headers=headers)
# print(response.text)
# 从哪里找什么数据 \d+ 表示匹配一个或者多个数字
video_id_list = re.findall('', response.text)
print(video_id_list)
for video_id in video_id_list:
url = f'https://liveapi.huya.com/moment/getMomentContent?videoId={video_id}&uid=&_=1652789442223'
response = requests.get(url=url, headers=headers)
# print(response.json()['status'])
title = response.json()['data']['moment']['title']
video_url = response.json()['data']['moment']['videoInfo']['definitions'][0]['url']
# 保存数据 >>> 也是需要发送请求, 获取数据
video_content = requests.get(url=video_url, headers=headers).content # 获取二进制数据
with open('video\\' + title + '.mp4', mode='wb') as f:
f.write(video_content)
print(title, '保存成功')
对本次有疑惑或需要教程资料的同学可左侧扫🐎领取哦~
成功没有快车道,幸福没有高速路。
所有的成功,都来自不倦地努力和奔跑,所有的幸福都来自平凡的奋斗和坚持
——励志语录
本文章就写完啦~感兴趣的小伙伴可以复制代码去试试
你们的支持是我最大的动力!!记得三连哦~ 💕 欢迎大家阅读往期的文章呀