python 从0到批量下载某站视频

news2024/11/26 10:50:05

简介:真实从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 += 1
        print('第'+ 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+link
    page+=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里面看看在这里插入图片描述
当当当~ 下载成功啦~

欢迎大家测试使用,有问题及时留言嗷~

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

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

相关文章

Ansible自动运维————实验

0、创建新的虚拟机&#xff0c;使用镜像RHEL8.5,要求/boot目录为512N&#xff0c;/home目录为1Gb&#xff0c;交换空间为2Gb&#xff0c;其他空间给&#xff09;目录。1、将该主机作为 Ansible 控制节点&#xff0c;克隆该虚拟机&#xff0c;将克隆的虚拟机作为受控节点&#x…

Koa源码学习

前言 koa是一个非常流行的Node.js http框架。本文我们来学习下它的使用和相关源码 来自官网的介绍&#xff1a; Koa 是一个新的 web 框架&#xff0c;由 Express 幕后的原班人马打造&#xff0c; 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。…

【数据分析】Excel必备函数汇总

文章目录求和单条件求和SUMIF多条件求和SUMIFS求平均AVERAGE单条件多条件查找纵向VLOOKUP函数eg1已知身份证查姓名eg2已知身份证查地区Find函数FindB函数SEARCH函数SEARCHBMATCH函数Subtotal函数最值小数点去小数点TRUNC四舍五入ROUND随机数求余奇偶统计条件多条件时间当前日期…

LearnOpenGL-光照-5.投光物

本人刚学OpenGL不久且自学&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/LearnOpenGLProject 文章目录投光物平行光点光源聚光不平滑的例子平滑例子投光物 前面几节使用的光照都来自于空间中的一个点 即…

IR 808 Alkyne,IR-808 alkyne,IR 808炔烃,近红外吲哚类花菁染料

【产品理化指标】&#xff1a;中文名&#xff1a;IR-808炔烃英文名&#xff1a;IR-808 alkyne&#xff0c;Alkyne 808-IR CAS号&#xff1a;N/AIR-808结构式&#xff1a;规格包装&#xff1a;10mg&#xff0c;25mg&#xff0c;50mg&#xff0c;接受各种复杂PEGS定制服务&#x…

Git的下载、安装、配置、使用、卸载

前言 我是跟着狂神老师学的。该博客仅用于笔记所用。 下面是老师的B站和笔记 B站&#xff1a;https://www.bilibili.com/video/BV1FE411P7B3?p1&vd_source9266cf72b1f398b63abe0aefe358d7d6 笔记&#xff1a;https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ 一、准备工…

【18】组合逻辑 - VL18 实现3-8译码器①

VL18 实现3-8译码器① 1 题目 【这题我的思路非常绝境】奈斯 !! 看真值表的思路:Yi所在列【0仅一个其余全1】,故【以0为对象求解】 观察发现:E3 E2_n E1_n = 100 时 是 译码的使能信号 ; 并且E3 E2_n E1_n为其他值时,都不使能译码 然后就很简单,没有仿真就成功了 2 代…

Linux:文件流指针 与 文件描述符

目录一、文件描述符二、文件流指针三、缓冲区之前讲解过了IO库函数和IO接口&#xff0c;库函数是对系统调用接口的封装&#xff0c;也就是说实际上在库函数内部是通过调用系统调用接口来完成最终功能的。 库函数通过文件流指针操作文件&#xff0c;系统调用接口通过文件描述符操…

在一个web应用中应该如何完成资源的跳转

在一个web应用中通过两种方式&#xff0c;可以完成资源的跳转&#xff1a; 第一种方式&#xff1a;请求转发 第二种方式&#xff1a;重定向 转发和重定向的区别&#xff1a; 代码上的区别&#xff1a; 请求转发 // 获取请求转发器对象 RequestDispatcher dispatcher request.…

3-1 SpringCloud快速开发入门: Ribbon 是什么

接上一章节Eureka 服务注册中心自我保护机制&#xff0c;这里讲讲Ribbon 是什么 Ribbon 是什么 通常说的负载均衡是指将一个请求均匀地分摊到不同的节点单元上执行&#xff0c;负载均和分为硬件负载均衡和软件负载均衡&#xff1a; **硬件负载均衡&#xff1a;**比如 F5、深信…

C# 实现 key-value 结构自定义缓存 CustomCache

功能需求 使用 C# 编写一个 key-value 结构进程内缓存&#xff0c;实现数据的缓存操作&#xff0c;此处所用到的知识点如下&#xff1a; 线程安全的字典 ConcurrentDictionary&#xff1b;设计模式之单例模式&#xff08;Singleton&#xff09;&#xff1b;缓存数据【主动 &a…

3.10多线程

一.常见锁策略1.悲观锁 vs乐观锁体现在处理锁冲突的态度①悲观锁:预期锁冲突的概率高所以做的工作更多,付出的成本更多,更低效②乐观锁:预期锁冲突的概率低所以做的工作少,付出的成本更低,更搞笑2.读写锁 vs 普通的互斥锁①普通的互斥锁,只有两个操作 加锁和解锁只有两个线程针…

HT32合泰单片机开发环境搭建和配置教程

HT32合泰(Holtek)单片机开发环境搭建安装教程 前言 最近在准备合泰杯的比赛&#xff0c;在看合泰官方的PPT和数据手册学习&#xff0c;顺便做个合泰单片机的开发环境搭建教程。 合泰杯比赛发放的开发板是ESK32-30501&#xff0c;用的单片机是HT32F52352。 合泰杯官网地址&a…

【C++】vector的使用及其模拟实现

这里写目录标题一、vector的介绍及使用1. vector的介绍2. 构造函数3. 遍历方式4. 容量操作及空间增长问题5. 增删查改6. vector二维数组二、vector的模拟实现1. 构造函数2. 迭代器和基本接口3. reserve和resize4. push_back和pop_back5. insert和erase5. 迭代器失效问题5. 浅拷…

Java中的 this 和 super

1 this 关键字 1.1 this 访问本类属性 this 代表对当前对象的一个引用 所谓当前对象&#xff0c;指的是调用当前类中方法或属性的那个对象this只能在方法内部使用&#xff0c;表示对“调用方法的那个对象”的引用this.属性名&#xff0c;表示本对象自己的属性 当对象的属性和…

IntelliJ IDEA 编码设置

1.场景 适用于配置idea文件编码 2.配置 对已经存在的项目设置文件编码 可以设置全局的编码 以及 项目的编码 一般没啥特殊要求 都建议设置为 UTF-8 以及 配置项目的目录的单独编码 也建议UTF-8 idea可以单独设置properties的编码 也建议改为 UTF-8&#xff0c;其中有一个重点…

HCIP --- GRE和MGRE

VPN----虚拟私有网络&#xff1a;依靠ISP或者其他网络管理机构在公有网络基础上构建的专用的安全数据通信网络&#xff0c;只不过该网络是逻辑上的而非物理的。 虚拟&#xff1a;用户不再需要拥有实际的长途数据线路&#xff0c;而是使用公共网络资源建立的属于自己的私有网络…

[论文笔记]Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

引言 我们知道Transformer很好用&#xff0c;但它设定的最长长度是512。像一篇文章超过512个token是很容易的&#xff0c;那么我们在处理这种长文本的情况下也想利用Transformer的强大表达能力需要怎么做呢&#xff1f; 本文就带来一种处理长文本的Transformer变种——Transf…

SQS (Simple Queue Service)简介

mazon Simple Queue Service (SQS)是一种完全托管的消息队列服务&#xff0c;可以让你分离和扩展微服务、分布式系统和无服务应用程序。 在讲解SQS之前&#xff0c;首先让我们了解一下什么是消息队列。 消息队列 还是举一个电商的例子&#xff0c;一个用户在电商网站下单后付…

【LeetCode每日一题:[面试题 17.05] 字母与数字-前缀和+Hash表】

题目描述 给定一个放有字母和数字的数组&#xff0c;找到最长的子数组&#xff0c;且包含的字母和数字的个数相同。 返回该子数组&#xff0c;若存在多个最长子数组&#xff0c;返回左端点下标值最小的子数组。若不存在这样的数组&#xff0c;返回一个空数组。 示例 1: 输入…