python 从0到批量下载某站视频
简介:真实从0到1,童叟无欺~
目标:用python批量下载某站搜索视频,以“CG 服装”为例

本章主要介绍如何用python把搜索到的视频直接下载到自己的本地文件夹中~
介绍一下工作流
- 1. 下载并安装python
- 2. 测试python是否安装成功
- 3. 打开jupyter notebook开始工作
- 3.1 批量获取想要下载的视频链接
- 3. 2 将这些视频批量下载到本地文件夹中
1. 下载并安装python
这里推荐并介绍下载anaconda,为什么要下载Anaconda呢,Anaconda和Python是什么关系呢~
Anaconda和Python相当于是汽车和发动机的关系,你安装Anaconda后,就像买了一台车,无需你自己安装发动机和其他零配件,而Python作为发动机提供Anaconda工作所需的内核。

简单来说,你可以把Anaconda看做成Python在数据科学领域的瑞士军刀,什么都给你安排好了,就等你下载安装。
指路下载链接与下载安装教程:
复制网址,进入anaconda官网:https://www.anaconda.com/

点击箭头指向位置,进入以下页面

点击此处开始下载(也有朋友推荐不下载最新版本的,个人习惯使用最新版本的~)
下载好后按照以下教程一步一步操作,直到finish:
https://blog.csdn.net/baidu_22225919/article/details/82957508
2. 测试python是否安装成功
回到主页,按键win+R或者直接搜索cmd,打开命令提示符

输出python并按回车,如下显示表示下载成功

然后输入quit()退出
停留在这个页面不要关掉,稍后还会用到~
3. 打开jupyter notebook开始工作
科普:那jupyter notebook又是什么呢?
简单来说,是一个编程工具,用来做python等语言的编程工作。代码可以写一行运行一行,出现错误修改非常方便,无需从头再来一次,很适合初学者或者教学使用。
当你下载好了anaconda就自带了这个编程工具,直接搜索它就好啦~

打开网页以后,可以新建自己的文件夹或者直接新建写代码的页面,这里我们就痛快直接开始~

进入后的页面如下所示:

3.1 批量获取想要下载的视频链接
然后开动!将以下代码复制进去
## 获取网页链接
from bs4 import BeautifulSoup
import requests
userSeach='CG 服装'。## 搜索内容,按自己需求来
page=1
viedoNum=0
val=0
mainUrl='https://search.bilibili.com/all?keyword='+userSeach
mainSoup = BeautifulSoup(requests.get(mainUrl).text, "html.parser")
pages=mainSoup.find('li',class_="page-item last")
links = []
if(pages):
## pages=int(pages.text)pages=1 ## 想要下载的页数,按自己需求来
else:pages=1
while page<=pages:mainUrl='https://search.bilibili.com/all?keyword='+userSeach+'&page='+page.__str__()mainSoup = BeautifulSoup(requests.get(mainUrl).text, "html.parser")for item in mainSoup.find_all('li',class_="video-item matrix"):viedoNum += 1print('第'+ viedoNum.__str__() + '个视频:')val=item.find('a',class_="img-anchor")print('视频标题:'+ val["title"])print('https:'+val["href"])link = ['https:'+val["href"]]print('视频链接:'+'https:'+val["href"])print('视频简介:'+item.find('div',class_="des hide").text.strip())print('up主:'+ item.find('a',class_="up-name").text.strip())print('视频观看量:'+ item.find('span',title='观看').text.strip())print('弹幕量:'+ item.find('span',title='弹幕').text.strip())print('上传时间:'+ item.find('span',title='上传时间').text.strip())subUrl=val["href"];subSoup = BeautifulSoup(requests.get('https:'+subUrl).text.strip(), "html.parser")print('视频图片:'+subSoup.find(itemprop="image")["content"])links=links+linkpage+=1
然后在这个框格处按运行即可

⚠️注意,这里第一次运行会报错,python中常常会调用写好的包方便我们用简单的代码就可以变成,这里是因为第一行用到的bs4包和第二行用到的requests包没有加载进来,再返回刚刚的命令提示符页面中,将这两个包加载进来

依次输出这两个红框中的内容,等待他们运行完成,再回来按一次运行,即可得到以下结果

可以根据内容判断是不是自己想要的,然后再进行下一步操作
3. 2 将这些视频批量下载到本地文件夹中
跟上面一样,先把这个厉害的包下载进来
然后将以下的代码复制到第二个框框里,先在D盘新建一个video文件夹(不建也可以,它是个成熟的程序,会自己建的),然后运行:

import os
for link in links:print('you-get -o d:/vedio/ '+link)os.system('you-get -o d:/vedio/ '+link)
找到下面那个图标位置,点开当前页面,你就会发现视频已经在下载啦~

然后,我们去文件夹video里面看看
当当当~ 下载成功啦~
欢迎大家测试使用,有问题及时留言嗷~
相关文章:
python 从0到批量下载某站视频
简介:真实从0到1,童叟无欺~ 目标:用python批量下载某站搜索视频,以“CG 服装”为例 本章主要介绍如何用python把搜索到的视频直接下载到自己的本地文件夹中~ 介绍一下工作流1. 下载并安装python2. 测试pyt…...
【深度学习】神经网络和深度学习--卷积和池化的作用
深度学习通常指训练大型深度的神经网络的过程。 与传统的神经网络模型相比,深度学习模型在结构上与之非常相似;不同的是,深度学习模型的“深度”更大,“深度”的体现就是神经网络层数多,神经网络每一层的结点数多。 本…...
锦正茂风冷系列电源JCP-10-80的技术参数
JCP-10-80为高稳定度的双极性恒流电源,广泛应用于电磁铁、亥姆霍兹线圈等感性负载的励磁。电源采用线性电源结构,输出电流稳定度高,纹波和噪声低。电源输出电流可在正负额定电流*值之间连续变化,电流平滑连续过零,可使…...
Idea+maven+spring-cloud项目搭建系列--11-1 dubbo(zookeeper,nacos)注册中心
前言:dubbo rpc 服务需要将服务提供者和消费者信息进行注册,以便于消费端可以完成远程接口调用;注册中心是 Dubbo 服务治理的核心组件,Dubbo 依赖注册中心的协调实现服务(地址)发现,自动化的服务…...
Python3入门教程||Python3 迭代器与生成器||Python3 函数
Python3 迭代器与生成器 迭代器 迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两…...
快速幂算法
快速幂算法 文章目录快速幂算法一、简单介绍二、计算7107^{10}710三、一般化1、计算ana^nan的快速方法:2、时间复杂度分析:四、代码五、参考资料一、简单介绍 快速幂(Exponentiation by squaring,平方求幂)是一种简…...
Hudi:问题总结(2)Flink-1.13.1消费kafka并插入hudi
问题一:java.lang.ClassNotFoundException: com.google.protobuf.MessageOrBuilder) 解决:字面意思,没找到类,将protobuf-java-3.2.0-jar包放到fink/lib/下 如果报commons-cli相关的错,就将commons-cli-1.4.jar放到f…...
Application工具方法
//注册这个接口registerActivityLifecycleCallbacks(activityLifecycleCallbacks);}Overridepublic void onTerminate() {//注销这个接口。unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);super.onTerminate();}public static List<Activity> activi…...
电脑游戏怎么录屏?其实很简单,只需要简单3步
电脑游戏一直是游戏爱好者最热衷的游戏之一。但是,有时候我们想分享我们在游戏中的精彩时刻,或者记录我们的游戏过程以便后续观看和学习。在这种情况下,录屏就成了必不可少的工具。但是,许多人可能不知道电脑游戏怎么录屏。在本文…...
【设计模式】go语言中的 [函数选项,单例,工厂,责任链] 常用的设计模式
文章目录前言一、函数选项模式二、单例模式三、工厂模式四、责任链模式前言 宿舍每人 温度38℃+ 大寄 设计模式很重要,设计模式其实就是为了解决某一类问题而形成的代码写法,设计模式很多,但是并不是每个都很常用,我们…...
2017系统分析师案例分析真题背记内容
前言 以下内容仅为个人根据当年系分案例真题问题整理的偏需要记背的考点答案,方便个人背诵和记忆使用。方便文字转语音,所以内容全为纯文字内容,以下内容仅供参考。 背记内容 微服务 微服务中应该包含的内容有:资源、对资源的…...
C++和C的区别
答:从宏观角度和微观角度分析微观角度:函数原型有区别,在c中,函数原型有参数和没有参数是不同的,并且允许申明多个同名的函数,只要他们的参数列表不同或者返回值不同即可,但是在c语言中不能。C引…...
【React教程】一、React简介
一、React简介 React是一个用于构建用户界面的JavaScript库,它是Facebook的内部项目,用来架设Instagram的网站,并于2013年5月开源。React主要用于构建Ul,很多人认为React 是 MVC 中的 V(视图)。由于拥有较高的性能&…...
运动蓝牙耳机什么牌子好,比较好的运动蓝牙耳机推荐
现在市面上的运动蓝牙耳机越来越多,在选择耳机的时候应该如何入手呢?最重要的是需要按照自己的需求来选择,但在耳机的配置上不能忽视的是耳机的防水等级,运动耳机对防水等级的要求更高,这样能够更好地防御汗水浸湿耳机…...
[深入理解SSD系列 闪存实战2.1] NAND FLASH特性串烧 | 不了解闪存特性,你能用好闪存产品吗?
前言 为了利用好闪存, 发挥闪存的优势, 以达到更好的性能和使用寿命, 那自然要求了解闪存特性。 闪存作为一种相对较新的存储介质, 有很多特别的特性。 一.闪存的特性 凡是采用Flash Memory的存储设备,可以统称为闪存存储。我们经常谈的固态硬盘(SSD),可以由volatile/…...
DJI ROS dji_sdk 源码分析|整体框架
DJI ROS dji_sdk 源码分析|整体框架launch文件CMakeLists.txtcpp文件main.cppOSDK 是一个用于开发无人机应用程序的开发工具包,基于OSDK 开发的应用程序能够运行在机载计算机上(如Manifold 2),开发者通过调用OSDK 中指定的接口能够…...
HT32合泰单片机开发环境搭建和配置教程
HT32合泰(Holtek)单片机开发环境搭建安装教程 前言 最近在准备合泰杯的比赛,在看合泰官方的PPT和数据手册学习,顺便做个合泰单片机的开发环境搭建教程。 合泰杯比赛发放的开发板是ESK32-30501,用的单片机是HT32F52352。 合泰杯官网地址&a…...
动态内存分配之伙伴算法
伙伴算法 伙伴算法是一种在计算机内存管理中使用的算法,用于分配和释放内存。它是一种基于二叉树的动态内存分配算法,可以高效地分配和合并内存块。伙伴算法是一种按照固定大小分配内存的算法,例如,每个内存块的大小为2的n次幂&a…...
CGAL 根据扫描线方向和角度对法向量进行重定向
目录一、算法原理1、主要函数二、代码实现一、算法原理 最小生成树对法向量定向的结果在具有许多尖锐特征和遮挡的机载点云数据中结果并不理想。scanline_orient_normals()是专门用于具有扫描线特性的点云法向量重定向的替代方法。它充分利用了某些激光雷达扫描器的LAS特性&…...
一个C#开发的开源的快速启动工具
更多开源项目请查看:一个专注推荐.Net开源项目的榜单 平常计算机安装软件比较多、或者工作涉及的文件比较多,很多人都会直接放在桌面,一方面不安全,还不容易查找,这时候我们往往,都会放在其他硬盘内&#x…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
Java中栈的多种实现类详解
Java中栈的多种实现类详解:Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...
【题解-洛谷】P10480 可达性统计
题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …...
