Python 爬虫之下载视频(一)

news2024/11/15 7:24:16

爬取某平台视频


文章目录

  • 爬取某平台视频
  • 前言
  • 一、大致内容
  • 二、基本思路
  • 三、代码编写
    • 1.引入库
    • 2.前期准备
    • 3.获取视频标题和地址
    • 3.下载保存视频
  • 总结


前言

今天写个从好K视频平台爬取正在播放的视频,并下载保存到本地。

注意:建议大家先看看我之前的比较简单的基础教程文章,要不可能看起来会有点费劲哦。


一、大致内容

通过用户输入某个视频的地址,然后程序会根据这个地址,自动获取视频的标题和下载视频,并将标题命名为视频文件的名称。
注意:仅限该平台哦。


二、基本思路

  • 第一步:获取视频的网页地址。(需要手动获取输入)
  • 第二步:关闭每次打开弹出的登陆窗口,并获取视频的标题和下载地址。(程序自动执行)
  • 第三步,下载视频并以标题来命名下载的视频。(程序自动执行)

三、代码编写

下面所用到的库,记得先用pip等命令安装一下哈。

1.引入库

代码如下:

# 用来请求网页
import requests

# 用来解析网页
from selenium import webdriver

# 用来定位某个元素在网页中的位置
from selenium.webdriver.common.by import By

# 用来记录时间或者短暂等待
import time

2.前期准备

代码如下:

# 创建一个对象实例,用来表示用哪个浏览器爬取
driver = webdriver.Firefox()
# 某个视频的地址
driver.get("https://haokan.baidu.com/v?vid=7073936468876035706&tab=recommend")
# 等待一下,等打开网页
time.sleep(8)

# 页面打开会弹出一个登录窗口
close = driver.find_element(by=By.CSS_SELECTOR, value='.close-btn')
# 等登录窗口弹出来
time.sleep(5)
# 关闭弹出的登录窗口
close.click()

主要讲一下下半部分代码的的作用吧,请看下图(通过检查元素获取其位置,然后用代码定位进行操作):
在这里插入图片描述


3.获取视频标题和地址

代码如下:

# 获取视频地址所在的位置
video = driver.find_element(by=By.CSS_SELECTOR, value='.art-video')
# 获取到该视频地址
video_url = video.get_attribute('src')

# 获取视频的标题
video_name = driver.find_element(by=By.CSS_SELECTOR, value='.videoinfo-title')

下面我用图片给大家解释吧,这样大家容易理解一点。

  1. 获取视频下载地址,首先各位先复制上面代码 art-video ,然后接着下图操作:
    在这里插入图片描述

  2. 获取视频标题。
    在这里插入图片描述


3.下载保存视频

代码如下:

# 发送HEAD请求,我们可以获取到服务器返回的关于资源的一些元数据,例如内容类型、内容长度、最后修改日期等
response = requests.head(short_video_url)
# 获取视频的大小(以字节为单位)
content_length = response.headers.get('content-length')
print(content_length)

# 设置stream=True参数以流的方式下载
mp4 = requests.get(short_video_url, stream=True)
with open(f'{video_name.text}.mp4', 'wb') as f:
    # 写入文件时,使用(chunk_size=1024)这种方式按块读取和写入
    for chunk in mp4.iter_content(chunk_size=1024):
        f.write(chunk)

上半部分代码说的是,在不下载视频的前提下,如何去获取视频的内容类型、内容长度、最后修改日期等。

下半部分代码说的是,让视频以流的形式下载,而不是一整块下载保存;同时,按块的方式一点一点保存到视频文件中去。


总结

本人实测有效,可以下载下来。但是清晰度不能保证,因为我没有登陆哈哈哈哈哈。基本环境是Python 3.11.6 版本的环境,注意哦要不然程序可能运行不起来。

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

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

相关文章

【MySQL】mysql执行查询超过30秒之后报错

出现场景: 用workbench,查本地数据库,执行查询超过30秒之后,会报错断开连接,报错信息:Error Code: 2013. Lost connection to MySQL server during query 解决办法: 修改配置设置&#xff0c…

Kafka消费者组

消费者总体工作流程 Consumer Group(CG):消费者组,由多个consumer组成。形成一个消费者组的条件,是所有消费者的groupid相同。 • 消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费…

RHCE8 资料整理(十一)

RHCE8 资料整理 第 32 章 控制语句32.1 判断语句 when32.1.1 when 判断中>、<、!和的使用32.1.2 when 判断中 in的用法32.1.3 when 判断中 is的用法 32.2 判断语句 block-rescue32.3 循环语句 第 32 章 控制语句 一个play中可以包含多个task&#xff0c;如果不想所有的t…

计算机网络-进阶

目录 易混淆物理层数据链路层网络层nat如何实现私有ip通信IP数据报 格式解析tcp 连接tcp流量控制滑动窗口拥塞控制 报文捕获 wireshark路由模拟器 enspcdn代理服务器 VS cdn VS web cache 计算机有了物理地址&#xff0c;为什么还要有ip地址&#xff1f;单播 多播 广播 传输层会…

EXCEL VLOOKUP函数

参考资料 Excel&#xff1a;史上最全的VLOOKUP应用教程VLOOKUP函数最全面最详细的讲解大全&#xff0c;涵盖17个重要和常见用法&#xff01; 目录 零. 前提条件一. 单条件查找1.1 顺向查找1.2 逆向查找 二. 多条件查找2.1 顺向查找2.2 逆向查找 三. 根据条件查询等级四. 交差查…

excel导出,post还是get请求?

1&#xff0c;前提 今天在解决excel导出的bug时&#xff0c;因为导出接口查询参数较多&#xff0c;所以把原来的get请求接口修改为post请求 原代码&#xff1a; 修改后&#xff1a; 2&#xff0c;修改后 postman请求正常&#xff0c;然后让前端对接口进行同步修改&#xff0…

【图神经网络】在节点分类任务中无特征节点的特征表示

无特征节点的特征表示 节点度数degree pagerank 以pagerank起源的应用场景为例&#xff0c;不是所有的网站都是同等重要的&#xff0c;所以需要根据结构信息对节点进行排序。 直觉上&#xff0c;如果一个网站它有很多链接&#xff0c;它就很重要&#xff0c;举例来说&#…

2023 年 5 大网络攻击

您是否知道 2023 年全球数据泄露的平均损失为 445 万美元&#xff1f;数量不只是数字&#xff1b;它反映了网络威胁对全球经济的深层次影响。他们强调了一个严峻的事实&#xff1a;没有任何实体能够幸免,甚至政府也不能幸免。 在前所未有的技术飞跃中&#xff0c;2023 年网络威…

听GPT 讲Rust源代码--src/tools(16)

File: rust/src/tools/rust-analyzer/crates/ide-completion/src/completions/use_.rs rust-analyzer是一个基于Rust语言的IntelliSense引擎&#xff0c;用于提供IDE自动补全、代码导航和其他代码编辑功能。在rust-analyzer的源代码中&#xff0c;rust/src/tools/rust-analyzer…

用户管理第2节课-idea 2023.2 后端--删除表,从零开始

一、鱼皮清空model文件夹下 二、鱼皮清空mapper文件夹下 三、删除 test 测试类下的部分代码 3.1删除SampleTest 3.2删除部分代码 UserCenterApplicationTests

加密后的数据该如何支持模糊查询

加密后的数据该如何支持模糊查询 在日常工作中&#xff0c;我们经常会有一些模糊查询的条件&#xff0c;比如说按照手机号模糊查询&#xff0c;或者是身份证号码。正常情况下我们可以使用 select * from user where mobile like %123% 来模糊查询&#xff0c;但是这种方式是…

〖大前端 - 基础入门三大核心之JS篇(58)〗- 面向对象案例

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

【深度学习】序列生成模型(五):评价方法计算实例:计算BLEU-N得分【理论到程序】

文章目录 一、BLEU-N得分&#xff08;Bilingual Evaluation Understudy&#xff09;1. 定义2. 计算N1N2BLEU-N 得分 3. 程序 给定一个生成序列“The cat sat on the mat”和两个参考序列“The cat is on the mat”“The bird sat on the bush”分别计算BLEU-N和ROUGE-N得分(N1或…

uniapp运行到手机模拟器

第一步&#xff0c;下载MUMU模拟器 下载地址&#xff1a;MuMu模拟器官网_安卓12模拟器_网易手游模拟器 (163.com) 第二步&#xff0c;运行mumu模拟器 第三步&#xff0c;运行mumu多开器 第三步&#xff0c;查看abs 端口 第四步&#xff0c;打开HBuilder,如下图&#xff0c;将…

探索 Vuex 的世界:状态管理的新视角(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

大模型赋能“AI+电商”,景联文科技提供高质量电商场景数据

据新闻报道&#xff0c;阿里巴巴旗下淘天集团和国际数字商业集团都已建立完整的AI团队。 淘天集团已经推出模特图智能生成、官方客服机器人、万相台无界版等AI工具&#xff0c;训练出了自己的大模型产品 “星辰”&#xff1b; 阿里国际商业集团已成立AI Business&#xff0c;…

亚马逊云科技-如何缩容/减小您的AWS EC2根卷大小-简明教程

一、背景 Amazon EBS提供了块级存储卷以用于 EC2 实例&#xff0c;EBS具备弹性的特点&#xff0c;可以动态的增加容量、更改卷类型以及修改预配置的IOPS值。但是EBS不能动态的减少容量&#xff0c;在实际使用中&#xff0c;用户也许会存在此类场景&#xff1a; 在创建AWS EC2…

mac电脑安装虚拟机教程

1、准备一台虚拟机&#xff0c;安装CentOS7 常用的虚拟化软件有两种&#xff1a; VirtualBoxVMware 这里我们使用VirtualBox来安装虚拟机&#xff0c;下载地址&#xff1a;Downloads – Oracle VM VirtualBox 001 点击安装 002 报错&#xff1a;he installer has detected an…

Linux shell编程学习笔记37:readarray命令和mapfile命令

目录 0 前言1 readarray命令的格式和功能 1.1 命令格式1.2 命令功能1.3 注意事项2 命令应用实例 2.1 从标准输入读取数据时不指定数组名&#xff0c;则数据会保存到MAPFILE数组中2.2 从标准输入读取数据并存储到指定的数组2.3 使用 -O 选项指定起始下标2.4 用-n指定有效行数…

【Filament】绘制圆形

1 前言 Filament环境搭建中介绍了 Filament 的 Windows 和 Android 环境搭&#xff0c;绘制三角形中介绍了绘制纯色和彩色三角形&#xff0c;绘制矩形中介绍了绘制纯色和彩色矩形&#xff0c;本文将使用 Filament 绘制圆形。 2 绘制圆形 本文项目结构如下&#xff0c;完整代码…