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

kettle实验十一:没有数据流入时停止操作

【实验目的】 1.利用Kettle的“阻塞数据直到步骤都完成”,“检测空流”,“中止”等组件,实现Kettle转换流程的控制。 2.熟练掌握“阻塞数据直到步骤都完成”,“检测空流”,“中止”等组件的使用,实现Kettle转换流程的控制。 【实验原理】 “检测空流”组件可以检测所在转换的输入数据,如果整个转换没有输入数据,通过“中止”组件终止整个转换的流程。在存在数据输入的情况,为了能让数据输出,需要和“阻塞数据直到步骤都完成”配合使用。当所有数据都已经从上个步骤“字段选择”读取完毕后,通过“阻塞数据直到步骤

weixin_44727274的博客 3848

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

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针

本篇介绍下m_map中添加指北针(m_northarrow)、比例尺(m_ruler)和进行比例缩放(m_scale)的函数及其用法 。提供了 示例以便参考,罗列了 各函数可设属性。希望对绘图的你有所帮助。

weixin_43339605的博客 1946

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

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

熊百涛的博客 1311

基于Simulink的发动机管理系统中的自适应增压控制系统设计

通过上述详细设计步骤,我们成功开发了一个基于Simulink的自适应增压控制系统。该系统不仅能够实时监测和预测发动机的运行状态,动态调整增压压力目标值,还具备实时监控、故障诊断和保护功能,确保系统的安全性和可靠性。此外,通过仿真实验和硬件在环测试,我们验证了系统的性能,并对其进行了优化,使其能够更好地满足实际应用需求。这个项目展示了如何利用MATLAB/Simulink的强大功能,结合控制理论和工程实践,开发出高效、可靠的自适应增压控制系统。

MHD0815的博客 220

Dify智能体开发:大语言模型(LLM)问题分类

通过定义分类描述,问题分类器能够根据用户输入,使用 LLM 推理与之相匹配的分类并输出分类结果,向下游节点提供更加精确的信息。

王国平的博客 2248

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

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

weixin_67572129的博客 538

某城商银行生产容器云平台详细设计方案分享及经验总结

AS3模式的CIS容器部署在K8S集群内,作为F5的控制器,CIS容器通过对K8S集群内Configmap资源进行监控,将Configmap资源中的内容转化为F5的配置,将配置推送给 F5 ,CIS容器还通过K8S标准的API接口完成业务发现和实时监听集群内Pod的变化,一旦Pod发生变化,相应的更新会及时推送给F5,并完成更新。容器技术发展非常迅速,现在应用大多以容器作为承载介质,前两年在容器云上承载的应用类型主要是Web类,随着容器云领域的不断发展,越来越多的应用类型将迁移至容器云,包括有状态应用。

qq_61890005的博客 856

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

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

weixin_39742392的博客 229

c# 如何使用S7NET 读取汇川H5U的数据

本文介绍了两种使用C#读取汇川H5U PLC数据的方法。第一种通过ModbusTCP协议(推荐),使用NModbus库实现,步骤包括配置PLC的Modbus服务器功能、安装库及编写读取保持寄存器的代码。第二种针对兼容西门子S7协议的型号,使用S7NetPlus库直接读取。文章强调需注意地址映射关系、协议配置及网络设置,并建议优先采用ModbusTCP方案以确保稳定性。两种方法均提供了完整的代码示例,帮助开发者快速实现在C#环境下与汇川H5U PLC的通信。

StevenChen的博客 457

使用HART Server PC软件进行HART设备的组态、调试和分析的完整指南

HART协议是一种用于工业自动化中的双向通信协议,能够在4-20mA模拟信号的基础上叠加数字信号,从而实现设备的远程监控和管理。HART协议兼具模拟和数字通信的优点,被广泛应用于过程控制系统中。设备组态:通过软件可以对HART设备进行组态,配置设备参数。设备调试:支持设备的在线调试和故障诊断,方便快速解决问题。数据分析:提供设备运行数据的实时监控和历史数据分析功能。报表生成:支持生成各类报表,便于数据记录和管理。

qq_38334677的博客 2468

Python爬虫下载Bilibili番剧弹幕

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

python学习者的博客 1677

8、Windows 部署ollama

一个本地运行大模型的集成框架,目前主要针对主流的LLaMA架构的开源大模型设计,通过将模型权重、配置文件和必要数据封装进由Modelfile定义的包中,从而实现大模型的下载、启动和本地运行的自动化部署及推理流程。此外,Ollama内置了一系列针对大模型运行和推理的优化策略,目前作为一个非常热门的大模型托管平台,已被包括LangChain、Taskweaver等在内的多个热门项目高度集成。

Andy_shenzl的博客 1131

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

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

翱翔-蓝天 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

Z_suger7的博客 1982

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 一文彻底搞懂 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、付费专栏及课程。

余额充值