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

news2024/9/21 20:23:22

最近某牙上又出现一批高质量视频,听说删的很快,还好我会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)

效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1938974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HW行动在即,邮件系统该怎么防守?

1. 什么是HW行动&#xff1f; HW行动是一项由公安部牵头&#xff0c;旨在评估企事业单位网络安全防护能力的活动&#xff0c;是国家应对网络安全问题所做的重要布局之一。 具体实践中&#xff0c;公安部组织攻防红、蓝两队&#xff08;红队为攻击队&#xff0c;主要由“国家队…

【漏洞复现】Netgear WN604 downloadFile.php 信息泄露漏洞(CVE-2024-6646)

0x01 产品简介 NETGEAR WN604是一款由NETGEAR&#xff08;网件&#xff09;公司生产的无线接入器&#xff08;或无线路由器&#xff09;提供Wi-Fi保护协议&#xff08;WPA2-PSK, WPA-PSK&#xff09;&#xff0c;以及有线等效加密&#xff08;WEP&#xff09;64位、128位和152…

面向初学者和专家的 40 大机器学习问答(2024 年更新)

面向初学者和专家的 40 大机器学习问答(2024 年更新) 一、介绍 机器学习是人工智能的重要组成部分,目前是数据科学中最受欢迎的技能之一。如果你是一名数据科学家,你需要擅长 python、SQL 和机器学习——没有两种方法。作为 DataFest 2017 的一部分,我们组织了各种技能测…

正则表达式(Ⅰ)——基本匹配

学习练习建议 正则表达式用途非常广泛&#xff0c;各种语言中都能见到它的身影&#xff08;js&#xff0c;java&#xff0c;mysql等&#xff09; 正则表达式可以快读校验/生成/替换符合要求的模式的字符串&#xff0c;而且语法通俗易懂&#xff0c;所以应用广泛 学习链接&am…

php随机海量高清壁纸系统源码,数据采集于网络,使用很方便

2022 多个分类随机海量高清壁纸系统源码&#xff0c;核心文件就两个&#xff0c;php文件负责采集&#xff0c;html负责显示&#xff0c;很简单。做流量工具还是不错的。 非第三方接口&#xff0c;图片数据采集壁纸多多官方所有数据&#xff01; 大家拿去自行研究哈&#xff0…

WEB前端09-前端服务器搭建(Node.js/nvm/npm)

前端服务器的搭建 在本文中&#xff0c;我们将介绍如何安装和配置 nvm&#xff08;Node Version Manager&#xff09;以方便切换不同版本的 Node.js&#xff0c;以及如何设置 npm&#xff08;Node Package Manager&#xff09;使用国内镜像&#xff0c;并搭建一个简单的前端服…

Merge-On-Read

基本介绍 Iceberg的Merge-On-Read Merge-On-Read&#xff0c;顾名思义&#xff0c;就是在读取的时候进行合并&#xff0c;是与Copy-On-Write相反的一种模式 在Iceberg中&#xff0c;Merge-On-Read同样用于行级更新&#xff0c;整体过程如下 当更新数据时&#xff0c;Iceber…

巴黎奥运会倒计时 一个非常不错的倒计时提醒

巴黎奥运会还有几天就要开幕了&#xff0c;大家应该到处都可以看到巴黎奥运会的倒计时&#xff0c;不管是电视上&#xff0c;还是网络里&#xff0c;一搜索奥运会&#xff0c;就会看到。倒计时其实是一个我们在生活中很常用的一个方法&#xff0c;用来做事情的提醒&#xff0c;…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(九)-无人机区域地面探测与避让(DAA)

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…

【CSS in Depth 2 精译_020】3.3 元素的高度

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

Linux:Linux进程概念

目录 前言 1. 冯诺依曼体系结构 2. 操作系统 2.1 什么是操作系统 3. 进程 3.1 基本概念 3.2 描述进程——PCB 3.3 进程和程序的区别 3.4 task_struct-PCB的一种 3.5 task_struct的内容分类 4. 查看进程 4.1 通过系统文件查看进程 4.2 通过ps指令查看进程 4.3 …

Redis7(二)Redis持久化双雄

持久化之RDB RDB的持久化方式是在指定时间间隔&#xff0c;执行数据集的时间点快照。也就是在指定的时间间隔将内存中的数据集快照写入磁盘&#xff0c;也就是Snapshot内存快照&#xff0c;它恢复时再将硬盘快照文件直接读回到内存里面。 RDB保存的是dump.rdb文件。 自动触发…

记录些Spring+题集(3)

百万QPS下热点数据的收集方案 在高并发场景下&#xff0c;如京东、淘宝的秒杀活动开始时候&#xff0c;会有很多的用户同时抢购秒杀商品&#xff0c;由于同一个场次成百上千种商品参与秒杀活动&#xff0c;但是热点的商品往往就只有那么几十个左右&#xff0c;此时系统的90%的…

linux桌面运维---第八天

1、rm命令&#xff1a; 用法&#xff1a;删除一个文件或者目录。 语法&#xff1a;rm [选项] name... 选项&#xff1a; -f 即使原档案属性设为唯读&#xff0c;亦直接删除&#xff0c;无需逐一确认。-r 将目录及以下之档案亦逐一删除。需要进行一一确认 2、ln命令&#…

Lamp 小白菜鸟从入门到精通

前言 “LAMP包”的脚本组件中包括了CGIweb接口&#xff0c;它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序&#xff0c;并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流&#xff0…

SpringBoot限制请求访问次数

本篇文章的主要内容是SpringBoot怎么限制请求访问次数。 当我们的服务端程序部署到服务器上后&#xff0c;就要考虑很多关于安全的问题。总会有坏人来攻击你的服务&#xff0c;比如说会窃取你的数据或者给你的服务器上强度。关于给服务器上强度&#xff0c;往往就有高强度给服务…

【ffmpeg入门】安装CUDA并使用gpu加速

文章目录 前言CUDACUDA是什么CUDA 的主要组成部分CUDA 的优点CUDA 的基本编程模型安装CUDA ffmpeg使用gpu加速为什么需要使用gpu加速1. 提高处理速度2. 减少 CPU 负载3. 提高实时处理能力4. 支持高分辨率和复杂编码格式5. 提供更好的可扩展性6. 提高能效 ffmpeg使用gpu加速常用…

在项目中加入 husky + lint-staged + eslint,代码检测格式化

背景 由于日常工作的多人协作中&#xff0c;会因为个人代码编写风格导致代码在不同人电脑上&#xff0c;会有异常代码格式的提示&#xff0c;为了解决这个小问题&#xff0c;我们可以使用 husky lint-staged 来对代码进行一定程度上的格式化&#xff0c;使格式风格统一&#x…

初谈Linux信号-=-信号的产生

文章目录 概述从生活角度理解信号Linux中信号信号常见的处理方式理解信号的发送与保存 信号的产生core、term区别 概述 从生活角度理解信号 你在网上买了很多件商品&#xff0c;再等待不同商品快递的到来。但即便快递没有到来&#xff0c;你也知道快递来临时&#xff0c; 你该…

【 DHT11 温湿度传感器】使用STC89C51读取发送到串口、通过时序图编写C语言

文章目录 DHT11 温湿度传感器概述接线数据传送通讯过程时序图检测模块是否存在 代码实现总结对tmp tmp << 1;的理解对sendByte(datas[0]/10 0x30);的理解 DHT11 温湿度传感器 使用80C51单片机通过读取HDT11温湿度传感的数据&#xff0c;发送到串口。 通过时序图编写相应…