bilibili爬虫Python

Python爬虫之爬取并下载哔哩哔哩视频 它可以爬取并下载视频文件和音频文件!亲自使用过,太好用了。 阅读详情

# 导入requests模块,模拟发送请求

import requests

# 导入json

import json

# 导入re

import re

# 定义请求头

headers = {

    'Accept': '*/*',

    'Accept-Language': 'en-US,en;q=0.5',

    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'

}

# 正则表达式,根据条件匹配出值

def my_match(text, pattern):

    match = re.search(pattern, text)

    print(match.group(1))

    print()

    return json.loads(match.group(1))

def download_video(old_video_url, video_url, audio_url, video_name):

    headers.update({"Referer": old_video_url})

    print("开始下载视频:%s" % video_name)

    video_content = requests.get(video_url, headers=headers)

    print('%s视频大小:' % video_name, video_content.headers['content-length'])

    audio_content = requests.get(audio_url, headers=headers)

    print('%s音频大小:' % video_name, audio_content.headers['content-length'])

    # 下载视频开始

    received_video = 0

    with open('%s_video.mp4' % video_name, 'ab') as output:

        while int(video_content.headers['content-length']) > received_video:

            headers['Range'] = 'bytes=' + str(received_video) + '-'

            response = requests.get(video_url, headers=headers)

            output.write(response.content)

            received_video += len(response.content)

    # 下载视频结束

    # 下载音频开始

    audio_content = requests.get(audio_url, headers=headers)

    received_audio = 0

    with open('%s_audio.mp4' % video_name, 'ab') as output:

        while int(audio_content.headers['content-length']) > received_audio:

            # 视频分片下载

            headers['Range'] = 'bytes=' + str(received_audio) + '-'

            response = requests.get(audio_url, headers=headers)

            output.write(response.content)

            received_audio += len(response.content)

    # 下载音频结束

    return video_name

if __name__ == '__main__':

    # 换成你要爬取的视频地址

    url ='https://www.bilibili.com/video/BV1zK4y1B7Z8/?share_source=copy_web'

    # 发送请求,拿回数据

    res = requests.get(url, headers=headers)

    # 视频详情json

    playinfo = my_match(res.text, '__playinfo__=(.*?)</script><script>')

    # 视频内容json

    initial_state = my_match(res.text, r'__INITIAL_STATE__=(.*?);\(function\(\)')

    # 视频分多种格式,直接取分辨率最高的视频 1080p

    video_url = playinfo['data']['dash']['video'][0]['baseUrl']

    # 取出音频地址

    audio_url = playinfo['data']['dash']['audio'][0]['baseUrl']

    video_name = initial_state['videoData']['title']

    print('视频名字为:video_name')

    print('视频地址为:', video_url)

    print('音频地址为:', audio_url)

    download_video(url, video_url, audio_url, video_name)

Python爬虫:爬取Bilibili视频(.m4s) 本文仅作为学习笔记参考使用: 哔哩哔哩视频抓取 b站视频的抓取还是比较困难的,相对于其他的网站的视频获取相对难一些,也是因为我的好奇不怕死心理,打算拿b站视频好好分析分析,具体抓取流程如下: 初始分析页面如下: 这个页面有点养眼,就从这个开始。本页面的请求以及响应信息较为容易抓取分析,主要就是获取分页标记以及视频跳转到指定播放界面的url地址(如下图所示) 我用的办法是把响应中的页面框架信息下载... 阅读详情

相关推荐

超详细爬取bilibili视频数据

1、爬虫心得 1、我们在写爬虫程序的时候可以采用面向对象的方式进行代码构造,使得代码结构更加清晰 2、放我们发现某个网站的PC端网页比较难爬的时候,我们可以查看其手机端是否好爬 3、本爬虫程序解析的文件为json数据文件 2、爬虫页面展示 原始json数据 通过json解析工具解析获得的数据 每一个直播的详情数据 3、代码实操 import requests import json class BilibiliSpider(): def __init__(self):

qq_45821420的博客 9782

python爬取B站视频

【代码】python爬取B站视频。

sinat_38653840的博客 3万+

python网络爬虫(爬取bilibili一位up的视频标题,评论数量等基本信息)

1.分析需求,明确目标 1.需求: 爬取b站up主王老菊所有视频投稿的编号,标题,播放数量以及评论数量。 2.分析: 1.先要进入b站,到这位up主的个人主页: 2.按f12进入控制台f5刷新,如图所示找到需要的信息: 3.图中的xhr文件就包含了我们需要的信息,挨个打开,直到找到需要的 2.环境配置 1.保证网络连接 2.pycharm中安装导入需要的模块 这里我用的...

monster_hahaha的博客 8169

Python爬虫--爬取哔哩哔哩(B站)短视频平台视频

Python爬虫--爬取哔哩哔哩(B站)短视频平台视频

y2878672183的博客 1万+

Python爬虫:爬取Bilibili弹幕过程示例代码

这篇文章主要介绍了Python爬虫爬取Bilibili弹幕过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来思考一个问题,B站一个视频的弹幕最多会有多少? 比较多的会有2000条吧,这么多数据,B站肯定是不会直接把弹幕和这个视频绑在一起的。 也就是说,有一个视频地址为https://www.bilibili.com/video/av6...

web开发与Python 1200

【Python】b站弹幕系统改版后爬虫方法(bilibili_api)

前言 以前b站弹幕接口是这个: https://api.bilibili.com/x/v1/dm/list.so 返回的是 XML 格式的信息,非常容易解析。 但是,不知道什么时候开始,b站弹幕接口进行了更新,这个接口现在也被废弃了,改成了下面这个: https://api.bilibili.com/x/v2/dm/web/seg.so F12调试一看,好家伙,返回的是二进制流,根本就看不懂。 这意味着,现有的通过直接访问API弹幕爬虫方法全部失效。那么怎么爬虫呢? 经过我的解析,得出了这个结论:https

Passkou 4344

Python爬虫实战之bilibili

本次要爬取的网站为bilibili,它是国内知名的视频弹幕网站,这里有及时的动漫新番,活跃的ACG氛围,有创意的Up主。可以在这里找到许多欢乐。正如他们官方的介绍,他是一个自动化的浏览器,可以模拟人的操作。

geobuins的博客 2016

Python 爬虫瞎玩系列(1) —— Bilibili的前100个上古巨坟考古

Python 爬虫瞎玩系列(1) —— Bilibili的前100个上古巨坟考古 《Python爬虫从瞎玩到发疯》,零基础,全是胡说。

一只不会码代码的咸鱼 5213

python爬取bilibili数据_Python爬虫:爬取Bilibili弹幕过程示例代码

这篇文章主要介绍了Python爬虫爬取Bilibili弹幕过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下先来思考一个问题,B站一个视频的弹幕最多会有多少?比较多的会有2000条吧,这么多数据,B站肯定是不会直接把弹幕和这个视频绑在一起的。也就是说,有一个视频地址为https://www.bilibili.com/video/av67946...

weixin_39923262的博客 326

Python爬虫教程:抓取Bilibili视频弹幕与评论

本文详细介绍了如何使用Python爬虫技术抓取Bilibili视频的弹幕与评论数据,包括如何解析API返回的数据、如何应对反爬虫机制、如何将数据存储为CSV文件等。希望这篇博客能为你提供一些有价值的参考,帮助你进行数据抓取和分析。如果你有任何问题或需要进一步扩展功能,可以继续研究和尝试。

2201_76125261的博客 777

STM32F407实现LwIP的MQTT客户端并连接到服务器

这个是用LwIP协议栈中自带的MQTT客户端API写成的,代码注释很详细,附带有服务端的展示。LwIP版本是2.1.2.

wait_for_STM32的博客 6394

python爬虫bilibili网站代码_python爬虫代码-爬取bilibili-live开播房间信息

# -*- encoding:utf-8 -*-# 作者:大帅# 目标:获取bilibili直播所有开播房间信息并保存在本地import requests,bs4,re,timeimport xlwings as xwfrom selenium import webdriverfrom bs4 import BeautifulSouproomlist = []# 获取bilibili动态页面def...

weixin_39665847的博客 933

从零开始:如何用Python手绘波特图并分析电路稳定性

本文详细介绍了如何使用Python绘制波特图并分析电路稳定性,涵盖从基础理论到实际应用的完整流程。通过NumPy和Matplotlib实现频域分析,包括RC低通滤波器和RLC带通滤波器的案例,以及相位裕度计算等高级技巧,为电子工程师提供了一套高效的电路分析解决方案。

hhh00的博客 371

Python爬虫自动化获取Bilibili热榜数据

B站热榜数据爬虫摘要 本项目实现了一个Bilibili热榜数据爬虫系统,主要功能包括: 数据获取 - 通过B站官方API获取热门视频数据,使用Requests库发送HTTP请求 数据处理 - 完整提取23个关键字段,涵盖视频基础信息、UP主信息、核心统计数据、时间信息和标签分类信息五大类 数据存储 - 实现双存储系统: CSV文件存储(支持UTF-8编码) MySQL数据库存储(使用pymysql连接) 特色功能: 智能标签提取系统(正则匹配+去重) 时间格式标准化处理 时长格式化工具(秒→HH:MM:SS

熊百涛的博客 1311

跟着团子学SAP PS:项目计划成本与项目预算设计思路

​在做SAP PS模块概览培训的时候,很多时候都会用到下面的一页PPT片子讲到项目计划成本与预算的关系,但真正这幅片子想表达的具体内容甚至大部分PS顾问也是无法阐明清楚的。 而SAP PS的设计其实是在丰富的项目管理学的基础上而开展的,所以今天从业务上结合SAP中的功能点讲一下项目成本计划及预算的逻辑。 在项目管理的十大知识领域中,项目成本管理主要是包括为使项目在批准的预算内完成而对成本进行规划...

Lucas1211的博客 3万+

解锁RK3588 HDMI输出:分辨率与EDID的深度探索

本文详细探讨了瑞芯微RK3588处理器的HDMI输出分辨率配置与EDID解析技术。文章首先介绍了RK3588处理器的性能特点及其HDMI功能在多媒体和工业领域的应用价值,随后分别阐述了HDMI输出分辨率的硬件连接要求和软件配置方法,包括4K/8K等不同分辨率的配置实例。在EDID部分,深入解析了EDID的数据结构、交互机制,以及数据获取与修改的具体方法。最后总结了配置过程中常见问题的解决方案,并展望了RK3588在高分辨率显示领域的发展前景。全文为开发者提供了RK3588 HDMI显示配置的完整技术指南。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 591

python爬虫——bilibili互动视频剧情树下载

通过api和python的request库,实现互动视频剧情树甚至是视频的下载

weixin_67572129的博客 538

【单智能体】AI 数据分析智能体案例讲解(附完整源码)

本案例将引导您构建一个基于 AI 的数据分析智能体,让用户能够通过自然语言查询来分析 CSV 和 Excel 文件中的数据,无需掌握 SQL 知识。该智能体使用 Agno Agent 框架集成 OpenAI GPT-4o 模型,并利用 DuckDB 提供高效的数据处理能力。

rengang66的博客 239

python爬虫csdn里下载_python爬虫搭配起Bilibili唧唧的流程分析

前言最近需要大规模下载B站视频,同时要将下载好的视频用BV号进行重命名,最后上传至服务器。这个工作一开始我是完全手工完成的,通过游猴来下载,可是下载几十个视频还好,再多一点的话真是太烦了,而且生产力低下,因此诞生了编写脚本的想法。一开始我需要在B站搜索关键词,然后不断点开视频后进行下载,同时在视频下载后还需要找到这个视频来修改BV号,效率实在太低,特别是当下载的视频多了,再返回来寻找它对应的BV号...

weixin_39742392的博客 229

R语言机器学习算法实战系列(十五)随机森林生存预后模型+SHAP值 (Random Survival Forest + SHAP)

本教程运用随机森林生存分析筛选与患者生存状态显著相关特征。该方法借随机森林这一强大机器学习算法,构建多棵决策树并集成结果,以提高生存分析准确性,识别关键生物标志物。接着,利用选定特征构建风险得分,将多个特征转化为单一数值,量化患者风险水平。之后,依据风险得分将患者分为高、低风险亚型,为临床治疗提供个性化指导。最后,通过分析时间依赖的 ROC 曲线评估模型长期预测能力。此曲线计算不同阈值下的真正例率与假正例率,在多个时间点评估,全面展现模型长期稳定性与准确性。。并且增加了SHAP值评估特征重要性

专注生信领域 2621

多测师肖sir_高级金牌讲师_数据库之存储练习题(8.13.1)

实验 一、 实验要求: 理解存储过程的概念 掌握存储过程的语法格式、使用方法 掌握存 储过程的创建、执行 二、实验前提: – drop table if exists student; – Create table student – (Id varchar(255), #学号 – Name varchar(255), #姓名 – Roomid varchar(255), #班级 – Sex char(1), #性别 – Degree varchar(3) );#成绩; Insert into stud

多测师肖sir的博客 704

Python爬虫下载Bilibili番剧弹幕

本文绍如何利用python爬虫下载bilibili番剧弹幕。 准备: python3环境 需要安装BeautifulSoup,selenium包 phantomjs 原理: 通过aid下载bilibili番剧弹幕 通过aid获取cid,如:http://www.bilibili.com/widget/getPageList?aid=9654289 下载弹幕地址:http://co...

python学习者的博客 1677

HANA-公司间销售ICS-IDOC系统配置-保姆级配置文档

合作伙伴编号:这个客户表示收票方(销售公司在生产公司中所对应的客户代码,卖方开票,买方收票),也就是咱们在配置消息类型输出的时候合作伙伴的类型的一个具体的客户编码,这个是站在发货工厂的角度去看的,也就是EDI 输出的 BP 合作伙伴的编号;在项目实施过程中经常会遇到关联方交易的问题,有公司间采购的业务场景,也会存在公司间销售的业务场景,本文将着重讲解公司间销售在SAP系统中的实现场景。在这个过程中,销售公司向客户开票产生应收,而生产公司向销售公司开票产生自己的应收,同时销售公司向生产公司产生应付。

我小时候很黑的博客 2392

2023年关于爬取Bilibili(B站)视频的一些最新资源和案例

这些资源表明,对于B站视频爬取的兴趣和活动非常活跃,对于那些有兴趣学习和应用网络爬虫技术到B站视频内容的人来说,有各种教育和实践资源可用。

翱翔-蓝天 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Python爬虫抓取Bilibili弹幕并生成词云

Bilibili(B站)是国内知名的视频分享平台,拥有海量的弹幕数据。弹幕是B站的核心特色之一,用户通过弹幕进行实时互动,这些数据对于分析视频热度、用户情感倾向等具有重要价值。本文将介绍如何利用Python爬虫技术抓取Bilibili视频的弹幕数据,并使用。读者可以进一步扩展,如结合机器学习进行弹幕分类或情感分析。B站的弹幕数据通常存储在XML文件中,每个视频对应一个弹幕文件(库生成词云,直观展示弹幕中的高频词汇。,我们需要解析XML并提取弹幕文本。:B站可能有反爬机制,可以设置。4.3 抓取弹幕数据。

Z_suger7的博客 1982

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【python实现网络爬虫(15)】python使用you-get爬取bilibili网站视频

1. 下载安装you-get模块(以windows系统为例): pip install -i https://pypi.tuna.tsinghua.edu.cn/simple you-get –> 输出结果为: 2. 指令:you-get -i [URL] 视频基础信息介绍,用来展示集中不同的清晰度 you-get -i https://www.bilibili.com/video/av...

lys_828的博客 3553
上一篇: 一文彻底搞懂 TCP三次握手、四次挥手过程及原理
下一篇: Android 中文 API (36) —— Toast
Roderick888888
博客等级 码龄6年 295粉丝 23原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值