python爬取b站视频
一: 运行代码需要的安装的模块:
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站视频相关推荐
- python爬取b站评论_学习笔记(1):写了个python爬取B站视频评论的程序
学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...
- python爬取bilibili弹幕_用Python爬取B站视频弹幕
原标题:用Python爬取B站视频弹幕 via:菜J学Python 众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一 ...
- python爬b站评论_学习笔记(1):写了个python爬取B站视频评论的程序
学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...
- 解决使用python爬取b站视频并使用ffmepg把音频和视频合成失败
首先我们需要下载ffmepg,并且配置环境变量 把下载下来的文件中的bin文件夹的路径添加到Path中 然后打开Anaconda Prompt,使用命令conda install ffmpeg安装ff ...
- python视频网站分类_用Python爬取b站视频
本文概要 爬取B站视频的办法在csdn和B站有很多 但是本文算作是对爬取步骤的一个拆解 同时也算是我的笔记.本代码的参考对象是https://blog.csdn.net/Mr_Ohahah/artic ...
- 年轻小伙竟用python爬取B站视频评论!
大家好,我是啃书君. 今天为大家带来的小demo是爬取B站视频的评论.开始还以为很难,等正真上手的时候发现,也就是那么回事. 高考对于每个人来说都是人生的重大转折点,你考上一所什么样的大学,极大可能改 ...
- Python 爬取B站视频信息 弹幕信息 生成词云统计
本文介绍功能:实现爬取B站视频信息(用户输入关键词).爬取弹幕信息(支持自定义天数).生成词云图 完整代码地址:https://github.com/736755244/py_bilibili 一.数 ...
- python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...
学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...
- python爬取B站视频历史弹幕,并去除同标签的重复弹幕,暴力拿下所有弹幕。
嘻嘻嘻,今天我们来爬小B站的弹幕. 文章目录 前言 一.爬取历史弹幕的思路讲解 1.如何找到弹幕的爬取位置 2.如何找到历史弹幕的位置 二.代码讲解部分 1.引入库 2.编写自己的headers 3. ...
- Python爬取B站视频信息
该文内容已失效,现已实现scrapy+scrapy-splash来爬取该网站视频及用户信息,由于B站的反爬封IP,以及网上的免费代理IP绝大部分失效,无法实现一个可靠的IP代理池,免费代理网站又是各种 ...
最新文章
- Mysql中的count()与sum()区别
- 《精通J2EE网络编程》中讲的JNDI 6.3总结
- Passwordless SSH Login
- Ubuntu上安装配置JDK
- C++实现链式存储线索二叉树
- [清华集训2017]无限之环(网络流)
- ubuntu18.04虚拟机突然连不上网
- 登陆获取cookie
- spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
- paip.判断文件是否存在uapi python php java c#
- python爬虫:爬取携程航班数据
- [清橙A1364]社交网络结构洞【暴力】
- 设计模式-word版
- VMware虚拟机优化,提高虚拟机运行速度的方法?
- 诚之和:年轻人的尽头,是回老家买房吗?
- 香港影评会选出电影史上十大华语片
- 计算机组装和拆卸的说法错误的是,《计算机组装与维护》选修试卷2009-2010-1A
- 搭建供需对接平台 助力汽车产业发展 2021大连金普新区汽车产业链供需对接大会开幕
- 怎么把文字转换成语音,这里有简单的方法
- 用计算机搞音乐,用电脑键盘做音乐