用Python写一个视频采集脚本,对某网站进行批量采集

最近某牙上又出现一批高质量视频,听说删的很快,还好我会Python,赶紧采集下来保存!

准备工作

环境使用

Python 3.10 解释器
Pycharm 编辑器

模块使用

requests >>> 数据请求模块
re <正则表达式模块>
os <文件操作模块>

为了让大家彻底学会本案例,小编特地熬夜加班录制了视频讲解, 跟代码一起打包好了,直接文末名片自取,点击直达文末

爬虫实现基本流程

一、数据来源分析

1.明确需求

明确采集的网站以及数据内容

  • 网址: https://***/video/play/994633970.html
  • 数据: 视频标题 / 视频链接
2.抓包分析

通过浏览器开发者工具分析对应数据位置

  • 打开开发者工具
    F12 / 右键点击检查选择network 网络面板
  • 刷新网页
  • 通过关键字搜索找到对应数据位置
    关键字: 需要什么数据就搜什么数据

1.先找视频链接
-开发者工具 -> 网络 -> 媒体 -> 查看对应视频链接 ×
-开发者工具 -> 网络 -> 全部 -> 是否存在某些链接 xx.ts -> 说明m3u8流媒体文件
2.关键字: m3u8进行数据搜索查询

数据包地址: https://****/moment/getMomentContent?callback=jQuery1124092 55698284796892_1720872611286&videoId=994633970&uid=1259519996193&_=172087261129
2

二、代码实现步骤

1.发送请求

模拟浏览器对于url地址发送请求

# 导入数据请求模块 import requests """发送请求"""
# 模拟浏览器 -> 复制请求标头参数(字典)
headers = {
# User-Agent 用户代理, 表示浏览器基本身份信息
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
}
# 请求网址 -> 复制刚刚抓包分析找到链接地址
url = 'https://****/moment/getMomentContent? callback=jQuery112409255698284796892_1720872611286&videoId=994633970&uid=1259519  996193&_=1720872611292'
# 发送请求 -> 导入数据请求模块, 使用浏览器所示请求方法传入相关参数即可
response = requests.get(url=url, headers=headers)
2.获取数据

获取服务器返回响应数据

response.text

  • 获取响应的文本数据

response.json()

  • 获取响应的json数据
    必须是完整的json数据格式

response.content

  • 获取响应的二进制数据
3.解析数据

提取我们需要的数据内容

 # 提取视频标题
 title = json_data['data']['moment']['title']
 # 提取视频链接
 video_url = json_data['data']['moment']['videoInfo']['definitions'][0]['url']
 print(title, video_url)
4.保存数据

获取视频内容, 保存本地文件夹。

# 获取视频内容
video_content = requests.get(url=video_url, headers=headers).content
# 保存数据
with open('video\\' + title + '.mp4', mode='wb') as f:
    # 写入数据
    f.write(video_content)

效果

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 22:46:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 22:46:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 22:46:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 22:46:02       55 阅读

热门阅读

  1. Sphinx 安装相关指令解释

    2024-07-22 22:46:02       17 阅读
  2. python学习之路

    2024-07-22 22:46:02       16 阅读
  3. 【busybox记录】【shell指令】du

    2024-07-22 22:46:02       14 阅读
  4. c# 一个自定义日志类

    2024-07-22 22:46:02       11 阅读
  5. Android 11 Unable to start/bind service

    2024-07-22 22:46:02       15 阅读
  6. WEB开发-HTTP认证

    2024-07-22 22:46:02       12 阅读
  7. ubuntu PlayOnLinux

    2024-07-22 22:46:02       15 阅读
  8. 设计模式实战:库存管理系统的设计与实现

    2024-07-22 22:46:02       12 阅读