分享一个bilibili视频下载的方法,并使用python脚本重命名

本文介绍了一种从Bilibili网站批量下载教程视频的方法,并通过Python脚本实现视频的自动命名和分类,解决了文件名混乱的问题,提高了下载视频的管理和使用效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近惊奇的发现现在b站上越来越多的教程视频,突然感觉一波正能量啊,但是下载起来不是很方便啊!经过一番搜罗,发现还是有不少方法的,什么加各种字母的,还有各种插件的,倒也确实能用感觉很别扭,有些也不是原画质的。感觉还不是很方便。

其中有一个比较靠谱,就是bilibili官方的,通过windows商店安装,可以缓存到本地的
windows版的bilibili
下载下来就是正常的视频格式,还是挺不错的,但是文件名很鸡肋,各种数字,看起来不方便,长这个样子,但是至少视频是可以正常播放的。
下载效果
于是写个脚本规整一下,各种问题圆满解决,可以下载各种合集。一键命名打包。

import os
import json
import shutil


def get_sub_dir_names(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return dirs


def get_sub_file_names(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return files


def makedir(dir_name):
    # 创建文件夹
    if not os.path.exists(dir_name):
        os.makedirs(dir_name)
        print("---------------------------")
        print("文件夹创建成功!")
        print(dir_path)
        print("---------------------------")


if __name__ == "__main__":
    file_format = '.flv'                            # 文件格式
    srcFile = "E:\\BiliBili"             		# 文件所在目录
    title = ""                                      # 文件标题
    dir_title = ""                                  # 新目录名
    dir_path = "E:\\BiliBili"                       # 新路径
    catalog = []                                    # 最后目录
    dir_names = get_sub_dir_names(srcFile)
    for path in dir_names:
        file_path = os.path.join(srcFile, path)
        file_names = get_sub_file_names(file_path)
        for info_file_name in file_names:
            info_file_path = os.path.join(file_path, info_file_name)
            if info_file_path.endswith("info"):
                info_file = open(info_file_path, encoding='UTF-8')
                info = info_file.read()
                title = json.loads(info)["PartName"]
                catalog.append(title)
                if not dir_title.strip():
                    # 创建文件夹
                    dir_title = json.loads(info)["Title"]
                    dir_path = os.path.join(dir_path, dir_title)
                    makedir(dir_path)
                    print(dir_path)
                info_file.close()
        for info_file_name in file_names:
            info_file_path = os.path.join(file_path, info_file_name)
            if info_file_path.endswith(file_format):
                new_file_name = os.path.join(file_path, title) + file_format
                # 改名
                os.rename(info_file_path, new_file_name)
                # 移动
                shutil.move(new_file_name, dir_path)
    # 生成目录
    write_catalog = open(dir_path + "\\catalog.txt", "w")
    catalog.sort()
    for title in catalog:
        write_catalog.write(title + "\n")
        print(title)
    write_catalog.close()

最后就可以得到一个文件夹和一个合集下的视频,是不是很方便!
一些老视频也有可能会有多个文件,就需要拼接什么的,但目前发现大部分都是单个的。
如果遇到需要拼接的情况,可以自行用下面的地址下载拼接脚本,但是耗时会比较长了!

其他源码地址 https://gitee.com/fuyq/bilibili

使用Python编写一个脚本来爬取Bilibili网站上的视频信息,你可以使用一些流行的网络爬虫库,如`requests`用于发送HTTP请求获取网页内容,`BeautifulSoup`或`lxml`处理HTML解析,以及`re`模块进行正则表达式匹配。以下是一个简单的步骤指南: 1. 安装必要的库: ```bash pip install requests beautifulsoup4 ``` 2. 使用`requests`获取视频详情页的HTML: ```python import requests url = "https://www.bilibili.com/video/BV某个视频ID" response = requests.get(url) html_content = response.text ``` 3. 解析HTML内容: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') ``` 4. 找到需要的信息(例如标题、描述、播放量等),通常在`<title>`标签、`<div class="desc">`或其他特定class/id下的元素: ```python title_element = soup.find('title') video_desc = soup.find('div', {'class': 'desc'}) view_count = int(soup.find('span', {'class': 'stat-num'}).text) ``` 5. 存储数据或打印结果: ```python print(f"视频标题: {title_element.text.strip()}") print(f"视频描述: {video_desc.text.strip()}") print(f"观看次数: {view_count}") ``` 6. 如果需要循环爬取更多视频,可以遍历B站视频列表页的链接,对每个页面重复上述过程。 注意: - Bilibili网站可能会有反爬机制,频繁抓取可能被封IP。在实际操作前,请确保你的爬虫遵守网站的Robots协议尊重版权。 - 使用第三方库时需检查其更新情况及官方文档,因为API或结构可能随时变更。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值