超简单!Python爬虫实战:爬取B站UP主视频数据,分析账号运营
最近刚学Python的小侄子找我“叔我想分析一下我喜欢的UP主的视频数据看看哪期播放量最高投币率怎么样但手动记太麻烦了”我笑着说“这事儿交给Python啊用B站的第三方库1小时写个脚本一键获取所有视频的播放量、点赞、投币、收藏还能自动生成Excel做分析”今天就把这个超简单、新手零门槛的实战教程分享给你——不用自己处理复杂的API加密不用登录用现成的bilibili-api-python库跟着步骤走你也能做出自己的“UP主运营分析工具”一、准备工作先把家伙事儿备齐10分钟搞定1. 安装Python和VS Code和之前的教程完全一样如果还没装翻回去看我前几篇的“准备工作”部分保姆级步骤零基础也能10分钟搞定。2. 安装必要的Python库用国内镜像源下载速度快10倍打开VS Code的“终端”快捷键Ctrl ~依次输入下面的命令每输完一行按回车# 1. 安装bilibili-api-pythonB站官方API的第三方封装库超简单pipinstallbilibili-api-python -i https://pypi.tuna.tsinghua.edu.cn/simple# 2. 安装pandas和openpyxl整理数据生成Excel表格pipinstallpandas openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple# 3. 安装matplotlib可选做简单的数据可视化pipinstallmatplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple如果终端显示“Successfully installed xxx”就说明安装成功了二、选一个你喜欢的UP主获取UP主的mid要爬取UP主的视频数据首先需要获取UP主的midB站用户的唯一ID获取方法超简单打开B站进入你喜欢的UP主的主页复制浏览器地址栏的URL格式通常是https://space.bilibili.com/12345678URL里的数字12345678就是这个UP主的mid今天我就用老番茄B站知名UP主mid12345678做演示如果这个mid失效了你可以自己找一个喜欢的UP主替换mid就行。三、写代码完整可运行附详细注释一键获取分析在VS Code里新建一个Python文件命名为bilibili_up_spider.py把下面的代码复制进去我加了超级详细的注释零基础也能看懂# 1. 导入我们需要的库frombilibili_apiimportuser,syncimportpandasaspdimporttimefromdatetimeimportdatetimedefget_up_videos(mid,max_videos50): 爬取指定B站UP主的视频数据整理成Excel做简单分析 :param mid: UP主的唯一ID从UP主主页URL里复制 :param max_videos: 最多爬取的视频数量建议50-100条不要爬太多 try:# 2. 初始化UP主对象uuser.User(mid)# 3. 获取UP主的基本信息昵称、粉丝数等print(正在获取UP主基本信息...)up_infosync(u.get_user_info())up_nameup_info[name]fans_countup_info[fans]print(f✅ UP主{up_name}粉丝数{fans_count})# 4. 获取UP主的视频列表print(f正在爬取视频数据最多爬取{max_videos}条...)video_list[]page1# 从第一页开始whilelen(video_list)max_videos:print(f正在爬取第{page}页视频...)# 获取当前页的视频数据# 参数说明ps30每页30条pnpage当前页码orderpubdate按发布时间排序ressync(u.get_videos(ps30,pnpage,orderpubdate))videosres[list][vlist]# 如果没有视频了停止爬取ifnotvideos:print(⚠️ 没有更多视频了停止爬取)break# 5. 遍历当前页的每一条视频提取数据forvideoinvideos:iflen(video_list)max_videos:break# 提取视频数据bvidvideo[bvid]# 视频BV号titlevideo[title]# 视频标题play_countvideo[play]# 播放量danmaku_countvideo[video_review]# 弹幕数like_countvideo[like]iflikeinvideoelse0# 点赞数部分旧视频可能没有coin_countvideo[coin]ifcoininvideoelse0# 投币数favorite_countvideo[favorites]iffavoritesinvideoelse0# 收藏数durationvideo[length]# 视频时长publish_timedatetime.fromtimestamp(video[created])# 发布时间时间戳转日期# 计算投币率投币数/播放量衡量视频质量coin_rate(coin_count/play_count*100)ifplay_count0else0# 把提取到的数据添加到列表里video_list.append({BV号:bvid,视频标题:title,播放量:play_count,弹幕数:danmaku_count,点赞数:like_count,投币数:coin_count,收藏数:favorite_count,投币率(%):round(coin_rate,2),视频时长:duration,发布时间:publish_time.strftime(%Y-%m-%d %H:%M:%S)})# 6. 每爬完一页暂停2-3秒避开反爬别爬太快sleep_time2(page%2)print(f✅ 第{page}页爬取成功已获取{len(video_list)}条视频暂停{sleep_time}秒...)time.sleep(sleep_time)page1# 7. 用pandas把列表转换成DataFramedfpd.DataFrame(video_list)# 8. 做简单的运营数据分析print(\n UP主运营数据分析 )ifnotdf.empty:# 播放量最高的视频top_play_videodf.loc[df[播放量].idxmax()]print(f 总视频数{len(df)})print(f 平均播放量{round(df[播放量].mean(),0)})print(f 平均投币率{round(df[投币率(%)].mean(),2)}%)print(f 播放量最高的视频《{top_play_video[视频标题]}》播放量{top_play_video[播放量]}发布时间{top_play_video[发布时间]})# 9. 生成Excel文件名current_timedatetime.now().strftime(%Y%m%d_%H%M%S)excel_filenamefB站UP主_{up_name}_视频数据_{current_time}.xlsx# 10. 保存到Excel文件df.to_excel(excel_filename,indexFalse,engineopenpyxl)print(f\n 全部爬取成功)print(f✅ 视频数据已保存到{excel_filename})exceptExceptionase:# 捕获所有异常打印错误信息print(f\n❌ 爬取失败错误信息{e})if__name____main__:# 11. 在这里修改你要爬的UP主的mid和参数# 注意mid从UP主主页URL里复制比如https://space.bilibili.com/12345678mid就是12345678up_mid12345678# 替换成你要爬的真实UP主的midmax_videos_count50# 最多爬50条视频建议50-100条不要爬太多# 12. 调用爬取函数get_up_videos(up_mid,max_videos_count)四、运行代码一键搞定在VS Code的终端里输入下面的命令按回车python bilibili_up_spider.py如果终端显示“ 全部爬取成功”就说明成功了打开VS Code左侧的“资源管理器”第一个图标你会看到生成的Excel文件双击打开就能看到UP主的所有视频数据包括播放量、点赞、投币、投币率、发布时间等还有简单的运营数据分析五、新手常见问题解答我帮你踩过的坑1. 终端提示“‘python’ 不是内部或外部命令”原因安装Python时没有勾选“Add Python 3.x.x to PATH”。解决方法翻回去看我第一篇爬天气预报的教程的“新手常见问题解答”部分。2. 终端提示“ModuleNotFoundError: No module named ‘bilibili_api’”原因没有安装bilibili-api-python库或者安装库时用了错误的镜像源。解决方法重新用清华镜像源安装bilibili-api-python检查VS Code的Python解释器是否正确。3. 终端提示“RequestException”或“412 Precondition Failed”原因爬太快被B站暂时屏蔽了或者网络不好。解决方法把代码里的max_videos_count改成更小的数比如20-30条把代码里的sleep_time改成更大的数比如5-10秒检查网络连接过一会儿再试。4. 部分视频的点赞数、投币数为0原因bilibili-api-python获取旧视频的点赞、投币数可能有限制或者UP主隐藏了部分数据。解决方法这是正常现象不影响整体分析可以忽略。5. 终端提示“User not found”原因UP主的mid不对或者UP主账号被封禁/注销了。解决方法检查mid是否正确从UP主主页URL里复制确认UP主账号正常。六、进阶玩法有兴趣可以试试爬取更多视频数据把max_videos_count改成更大的数但不要爬太多避免给B站服务器造成压力。数据可视化用matplotlib库画一个播放量趋势图、投币率分布图看看UP主的视频数据变化。筛选高质量视频筛选出投币率5%的视频看看这些视频的标题、时长、发布时间有什么规律。对比多个UP主爬取多个同类型UP主的视频数据对比他们的平均播放量、投币率分析哪个UP主的运营更好。结尾怎么样是不是超简单用现成的bilibili-api-python库新手也能1小时搞定这个脚本不仅能帮你分析喜欢的UP主的视频数据你还可以用它分析自己的B站账号如果有的话看看哪期视频最受欢迎优化自己的内容创作⚠️最后再次提醒本文仅供学习交流使用不要用于商业用途不要爬取大量数据严格遵守B站的用户协议

相关新闻

1985-2024年瞪羚、独角兽与科技型初创企业专利申请与授权信息

1985-2024年瞪羚、独角兽与科技型初创企业专利申请与授权信息

1.原始数据为:瞪羚、独角兽、创新型企业名录、工商注册信息匹配结果及经纬度数据(2025年6月爬取)和1985~2024 年专利申请与授权数据(版本 3,含申请人所处的省市区县),通过两个数据进…

2026/7/3 2:14:29 阅读更多 →
HoRain云--Redis错误解决:WRONGTYPE操作指南

HoRain云--Redis错误解决:WRONGTYPE操作指南

🎬 HoRain云小助手:个人主页 🔥 个人专栏: 《Linux 系列教程》《c语言教程》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!…

2026/5/17 6:44:06 阅读更多 →
实战:构建一个自动化的流量混淆与规避代理层

实战:构建一个自动化的流量混淆与规避代理层

郑重声明: 本文所有攻击演示和代码仅限于授权的渗透测试环境及教育目的。严禁在未经授权的情况下对任何目标进行攻击,否则后果自负。 前言 技术背景:在现代网络攻防对抗中,流量分析是防守方检测恶意活动的核心手段之一。无论是C2&…

2026/7/2 22:30:07 阅读更多 →

最新新闻

YimMenu:GTA V游戏增强与安全防护系统技术解析

YimMenu:GTA V游戏增强与安全防护系统技术解析

YimMenu:GTA V游戏增强与安全防护系统技术解析 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …

2026/7/3 9:20:38 阅读更多 →
如何用NSC_BUILDER高效管理你的Switch游戏库:批量处理与格式转换完全指南

如何用NSC_BUILDER高效管理你的Switch游戏库:批量处理与格式转换完全指南

如何用NSC_BUILDER高效管理你的Switch游戏库:批量处理与格式转换完全指南 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase ti…

2026/7/3 9:20:38 阅读更多 →
解锁Switch游戏新体验:yuzu模拟器完全指南

解锁Switch游戏新体验:yuzu模拟器完全指南

解锁Switch游戏新体验:yuzu模拟器完全指南 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 想在电脑上畅玩任天堂Switch游戏吗?yuzu模拟器为你带来前所未有的游戏体验!作为目前最…

2026/7/3 9:16:37 阅读更多 →
YOLOv8为何仍是目标检测首选?从核心原理到实战部署全解析

YOLOv8为何仍是目标检测首选?从核心原理到实战部署全解析

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 如果你刚接触目标检测,或者正在为项目选型,看到“YOLOv26”这个版本号,第一反应可能是&#xff…

2026/7/3 9:16:37 阅读更多 →
原来长春市场竟有产品稳定的专业宝马原厂升级产品?

原来长春市场竟有产品稳定的专业宝马原厂升级产品?

行业痛点分析在长春宝马原厂升级领域,存在诸多核心技术挑战。许多车主面临不知道哪里改装专业的问题,数据表明,约 60%的车主担心被宰,害怕遇到技术不专业的改装店。同时,近 50%的车主担忧师傅拆装有瑕疵,还…

2026/7/3 9:14:36 阅读更多 →
Windows触控板革命:如何通过三指拖拽实现macOS级效率体验

Windows触控板革命:如何通过三指拖拽实现macOS级效率体验

Windows触控板革命:如何通过三指拖拽实现macOS级效率体验 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDra…

2026/7/3 9:12:36 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻