一: 运行代码需要的安装的模块:

import aiohttp
import requests
from lxml import etree
import re
import pyperclip
import asyncio
import aiofiles
import os
import os.path

二:运行的代码需要安装的外置工具:

(1):cmd命令音频视频合成工具:ffmpeg

下载网址: Download FFmpeghttp://www.ffmpeg.org/download.html    (2):解压到某个目录,并添加到环境变量中

示例:

解压到D盘根目录:

D:/ffmpeg

则需要添加环境变量:D:/ffmpeg/bin

三:需要在代码所在目录创建的文件夹:

(1): bilibili视频

(2):在"bilibi视频"这个文件夹下载创建下面两个文件夹:

up视频

电视剧视频

四:代码

import aiohttp
import requests
from lxml import etree
import re
import pyperclip
import asyncio
import aiofiles
import os
import os.pathdef conbine(title_name, Class):title_new = title_name + 'c'if Class == 3:os.system(f'ffmpeg -i {title_new}.mp4 -i {title_new}.mp3 -c copy bilibili视频/电视剧视频/{title_name}.mp4')elif Class == 1 or 2:os.system(f'ffmpeg -i {title_new}.mp4 -i {title_new}.mp3 -c copy bilibili视频/up视频/{title_name}.mp4')def delete(title_name):title_new = title_name + 'c'os.remove(title_new + '.mp4')os.remove(title_new + '.mp3')async def download(i, url, title_name, headers2):title_new = title_name + 'c'async with aiohttp.ClientSession(headers=headers2)  as  session:async with session.get(url) as resp:data = await resp.content.read()if i == 0:filename = f'./{title_new}.mp4'elif i == 1:filename = f'./{title_new}.mp3'async with aiofiles.open(filename, mode='wb') as f:await f.write(data)  async def asyncmake(video_url, audio_url, title_name, headers2):urls = [video_url, audio_url]tasks = []for i in range(0, 2):d = asyncio.create_task(download(i, urls[i], title_name, headers2))tasks.append(d)await asyncio.wait(tasks)if __name__ == "__main__":url = str(pyperclip.paste())headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36","cookie": "_uuid=1A1B677B-6311-4E06-9BDA-D06081D8740275362infoc; buvid3=6E8BD183-ADF3-4D9B-8714-C157F73620CC34773infoc; sid=ab95r294; fingerprint=8f4236095f9ce06ad4c94e22f8be2c3a; buvid_fp=6E8BD183-ADF3-4D9B-8714-C157F73620CC34773infoc; buvid_fp_plain=1F0F89A8-01C5-4175-8F28-7E203E65FE7334767infoc; DedeUserID=306269459; DedeUserID__ckMd5=a7388eef56c50e08; SESSDATA=2833875d%2C1638683753%2C8d0ed*61; bili_jct=c6f37eedd1ca8195a83acf9076d81243; CURRENT_FNVAL=80; blackside_state=1; rpdid=|(k|)Yk|)|~l0J'uYkJuJu~Yu; CURRENT_QUALITY=80; LIVE_BUVID=AUTO8916234196752032; PVID=3; bp_video_offset_306269459=537685465433229330","Referer": "https://www.bilibili.com/video/BV1jV411n7qa?p=4"}response = requests.get(url, headers=headers)data = response.texthtml_obj = etree.HTML(data)print("'1':表示bilibili up主视频\n'2':表示up主选集视频\n'3':表示电视剧类型")Class = int(input("请输入下载类型:"))if Class == 1:title_name = html_obj.xpath('//*[@id="viewbox_report"]/h1/span/text()')[0]url_str = html_obj.xpath('/html/head/script[5]/text()')[0]video_url = re.findall(r'video":\[{"id":\d+,"baseUrl":"(.*?)"', url_str)[0]audio_url = re.findall(r'audio":\[{"id":\d+,"baseUrl":"(.*?)"', url_str)[0]print(title_name + " 正在下载中!!!")elif Class == 2:title_name1 = html_obj.xpath('//*[@id="viewbox_report"]/h1/span/text()')[0]title_name2 = url.split('?')[1]title_name = title_name1 + title_name2url_str = html_obj.xpath('/html/head/script[5]/text()')[0]video_url = re.findall(r'video":\[{"id":\d+,"baseUrl":"(.*?)"', url_str)[0]audio_url = re.findall(r'audio":\[{"id":\d+,"baseUrl":"(.*?)"', url_str)[0]print(title_name + " 正在下载中!!!")elif Class == 3:title_name = html_obj.xpath("/html/head/title/text()")[0]title_name = title_name.split('_')[0]print(title_name + " 正在下载中!!!")url_str = html_obj.xpath('/html/body/script[3]/text()')[0]video_url = \re.findall(r'video":\[{"start_with_sap":\d+,"bandwidth":\d+,"sar":"\d+:\d+","backupUrl":\["(.*?)"',url_str)[0]audio_url = \re.findall(r'audio":\[{"start_with_sap":\d+,"bandwidth":\d+,"sar":"","backupUrl":\["(.*?)"', url_str)[0]# 发送请求获取响应headers2 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36","Referer": url}loop = asyncio.get_event_loop()loop.run_until_complete(asyncmake(video_url, audio_url, title_name, headers2))conbine(title_name, Class)delete(title_name)print("下载完成!!!")

五:使用方法步骤:

(1):打开bilibili想要下载的视频,复制视频连接:

如下图红框内链接:

(2):运行代码:

输入下载类型:

1:表示bilibili up主视频

2:表示up主选集视频,类似于各种教程选集视频

3:表示电视剧,动漫视频,类似名侦探柯南,下载哪集复制哪集的链接 (vip视频暂时下载不                来,有更厉害的大佬能下载的话欢迎留言).

  六:运行代码,视频下载成功:

七:查看视频:

视频下载到了创建的up视频文件夹里了:

使用视频播放器进行播放就可以观看了!!!

八:观看视频:

有大佬建议欢迎留言哦!!!

python爬取b站视频相关推荐

  1. python爬取b站评论_学习笔记(1):写了个python爬取B站视频评论的程序

    学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...

  2. python爬取bilibili弹幕_用Python爬取B站视频弹幕

    原标题:用Python爬取B站视频弹幕 via:菜J学Python 众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一 ...

  3. python爬b站评论_学习笔记(1):写了个python爬取B站视频评论的程序

    学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...

  4. 解决使用python爬取b站视频并使用ffmepg把音频和视频合成失败

    首先我们需要下载ffmepg,并且配置环境变量 把下载下来的文件中的bin文件夹的路径添加到Path中 然后打开Anaconda Prompt,使用命令conda install ffmpeg安装ff ...

  5. python视频网站分类_用Python爬取b站视频

    本文概要 爬取B站视频的办法在csdn和B站有很多 但是本文算作是对爬取步骤的一个拆解 同时也算是我的笔记.本代码的参考对象是https://blog.csdn.net/Mr_Ohahah/artic ...

  6. 年轻小伙竟用python爬取B站视频评论!

    大家好,我是啃书君. 今天为大家带来的小demo是爬取B站视频的评论.开始还以为很难,等正真上手的时候发现,也就是那么回事. 高考对于每个人来说都是人生的重大转折点,你考上一所什么样的大学,极大可能改 ...

  7. Python 爬取B站视频信息 弹幕信息 生成词云统计

    本文介绍功能:实现爬取B站视频信息(用户输入关键词).爬取弹幕信息(支持自定义天数).生成词云图 完整代码地址:https://github.com/736755244/py_bilibili 一.数 ...

  8. python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...

    学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...

  9. python爬取B站视频历史弹幕,并去除同标签的重复弹幕,暴力拿下所有弹幕。

    嘻嘻嘻,今天我们来爬小B站的弹幕. 文章目录 前言 一.爬取历史弹幕的思路讲解 1.如何找到弹幕的爬取位置 2.如何找到历史弹幕的位置 二.代码讲解部分 1.引入库 2.编写自己的headers 3. ...

  10. Python爬取B站视频信息

    该文内容已失效,现已实现scrapy+scrapy-splash来爬取该网站视频及用户信息,由于B站的反爬封IP,以及网上的免费代理IP绝大部分失效,无法实现一个可靠的IP代理池,免费代理网站又是各种 ...

最新文章

  1. Mysql中的count()与sum()区别
  2. 《精通J2EE网络编程》中讲的JNDI 6.3总结
  3. Passwordless SSH Login
  4. Ubuntu上安装配置JDK
  5. C++实现链式存储线索二叉树
  6. [清华集训2017]无限之环(网络流)
  7. ubuntu18.04虚拟机突然连不上网
  8. 登陆获取cookie
  9. spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
  10. paip.判断文件是否存在uapi python php java c#
  11. python爬虫:爬取携程航班数据
  12. [清橙A1364]社交网络结构洞【暴力】
  13. 设计模式-word版
  14. VMware虚拟机优化,提高虚拟机运行速度的方法?
  15. 诚之和:年轻人的尽头,是回老家买房吗?
  16. 香港影评会选出电影史上十大华语片
  17. 计算机组装和拆卸的说法错误的是,《计算机组装与维护》选修试卷2009-2010-1A
  18. 搭建供需对接平台 助力汽车产业发展 2021大连金普新区汽车产业链供需对接大会开幕
  19. 怎么把文字转换成语音,这里有简单的方法
  20. 用计算机搞音乐,用电脑键盘做音乐

热门文章

  1. 利用gretna计算小世界网络属性等图论指标笔记
  2. 航拍全景拍摄教程,如何制作航拍全景?
  3. PHP微信网页授权登录
  4. 手机版制作H5页面免费工具大集合
  5. PCB封装欣赏了解之旅(上篇)—— 常用元器件
  6. 高三数学微课堂【教学视频】
  7. win7共享wifi之bat文件
  8. wow插件补充说明篇
  9. 动画插件--WOWJS
  10. LaTeX打出罗马数字、希腊字母和大写空心粗体字母