当前位置: 首页 > news >正文

超简单!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-python:B站官方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主的mid(B站用户的唯一ID),获取方法超简单:

  1. 打开B站,进入你喜欢的UP主的主页;
  2. 复制浏览器地址栏的URL,格式通常是:
    https://space.bilibili.com/12345678
  3. URL里的数字12345678就是这个UP主的mid

今天我就用老番茄(B站知名UP主,mid:12345678)做演示(如果这个mid失效了,你可以自己找一个喜欢的UP主,替换mid就行)。


三、写代码!(完整可运行,附详细注释,一键获取+分析)

在VS Code里新建一个Python文件,命名为bilibili_up_spider.py,把下面的代码复制进去,我加了超级详细的注释,零基础也能看懂:

# 1. 导入我们需要的库frombilibili_apiimportuser,syncimportpandasaspdimporttimefromdatetimeimportdatetimedefget_up_videos(mid,max_videos=50):""" 爬取指定B站UP主的视频数据,整理成Excel,做简单分析 :param mid: UP主的唯一ID(从UP主主页URL里复制) :param max_videos: 最多爬取的视频数量(建议50-100条,不要爬太多) """try:# 2. 初始化UP主对象u=user.User(mid)# 3. 获取UP主的基本信息(昵称、粉丝数等)print("正在获取UP主基本信息...")up_info=sync(u.get_user_info())up_name=up_info['name']fans_count=up_info['fans']print(f"✅ UP主:{up_name},粉丝数:{fans_count}")# 4. 获取UP主的视频列表print(f"正在爬取视频数据,最多爬取{max_videos}条...")video_list=[]page=1# 从第一页开始whilelen(video_list)<max_videos:print(f"正在爬取第{page}页视频...")# 获取当前页的视频数据# 参数说明:ps=30(每页30条),pn=page(当前页码),order=pubdate(按发布时间排序)res=sync(u.get_videos(ps=30,pn=page,order='pubdate'))videos=res['list']['vlist']# 如果没有视频了,停止爬取ifnotvideos:print("⚠️ 没有更多视频了,停止爬取")break# 5. 遍历当前页的每一条视频,提取数据forvideoinvideos:iflen(video_list)>=max_videos:break# 提取视频数据bvid=video['bvid']# 视频BV号title=video['title']# 视频标题play_count=video['play']# 播放量danmaku_count=video['video_review']# 弹幕数like_count=video['like']if'like'invideoelse0# 点赞数(部分旧视频可能没有)coin_count=video['coin']if'coin'invideoelse0# 投币数favorite_count=video['favorites']if'favorites'invideoelse0# 收藏数duration=video['length']# 视频时长publish_time=datetime.fromtimestamp(video['created'])# 发布时间(时间戳转日期)# 计算投币率(投币数/播放量,衡量视频质量)coin_rate=(coin_count/play_count*100)ifplay_count>0else0# 把提取到的数据添加到列表里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_time=2+(page%2)print(f"✅ 第{page}页爬取成功!已获取{len(video_list)}条视频,暂停{sleep_time}秒...")time.sleep(sleep_time)page+=1# 7. 用pandas把列表转换成DataFramedf=pd.DataFrame(video_list)# 8. 做简单的运营数据分析print("\n========== UP主运营数据分析 ==========")ifnotdf.empty:# 播放量最高的视频top_play_video=df.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_time=datetime.now().strftime("%Y%m%d_%H%M%S")excel_filename=f"B站UP主_{up_name}_视频数据_{current_time}.xlsx"# 10. 保存到Excel文件df.to_excel(excel_filename,index=False,engine="openpyxl")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/12345678,mid就是12345678)up_mid=12345678# 替换成你要爬的真实UP主的midmax_videos_count=50# 最多爬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主账号正常。


六、进阶玩法(有兴趣可以试试)

  1. 爬取更多视频数据:把max_videos_count改成更大的数(但不要爬太多,避免给B站服务器造成压力)。
  2. 数据可视化:用matplotlib库,画一个播放量趋势图、投币率分布图,看看UP主的视频数据变化。
  3. 筛选高质量视频:筛选出投币率>5%的视频,看看这些视频的标题、时长、发布时间有什么规律。
  4. 对比多个UP主:爬取多个同类型UP主的视频数据,对比他们的平均播放量、投币率,分析哪个UP主的运营更好。

结尾

怎么样?是不是超简单?用现成的bilibili-api-python库,新手也能1小时搞定!

这个脚本不仅能帮你分析喜欢的UP主的视频数据,你还可以用它分析自己的B站账号(如果有的话),看看哪期视频最受欢迎,优化自己的内容创作!

⚠️最后再次提醒:本文仅供学习交流使用,不要用于商业用途,不要爬取大量数据,严格遵守B站的用户协议!

http://www.jsqmd.com/news/410152/

相关文章:

  • 开源任务管理工具!一款自托管的全能待办协作工具!
  • 【Matlab】MATLAB教程:xlswrite写入Excel——指定sheet写入与表格数据保存实操详解
  • 2026年口碑好的唐山别墅大宅定制家具/唐山卧室收纳定制家具如何选生产商推荐(精选) - 品牌宣传支持者
  • 零基础必学!Python爬虫实战:爬取天气预报,自动保存近7天天气+温度+风力
  • 2026年质量好的珍珠棉片材/覆膜珍珠棉厂家信誉综合参考 - 品牌宣传支持者
  • 新手友好!Python爬虫实战:爬取百度贴吧帖子,自动提取标题+正文+评论,保存为MD文件
  • GitHub 热榜项目 - 日榜(2026-02-25)
  • AI论文生成助手哪个好?2026年6款AI论文生成神器排行榜,一键解锁论文方向! - 掌桥科研-AI论文写作
  • HoRain云--Python语法错误排查:快速解决SyntaxError
  • python-flask新闻信息收集程序设计Pycharm vue django
  • 2026年比较好的低压储气罐/国内储气罐高评价厂家推荐 - 品牌宣传支持者
  • 【Matlab】MATLAB教程:fprintf写入文本——格式化写入txt与计算结果保存实操详解
  • HTTP/2 与 HTTP/3 请求走私:协议降级、隧道与应用层规避实战
  • 毕业设计答辩全流程指南:PPT 结构设计与答辩策略实战
  • 2026年知名的全钢工业洗衣机/洗衣机厂家用户好评推荐 - 品牌宣传支持者
  • Opencv 学习笔记:距离变换(DIST_L1 算法实战 + 归一化)
  • 深入底层:Qt 源码中那个“除以零”的宏定义神技
  • 豆包超能模式:全能AI助手的全新体验
  • AI写论文有妙招!4款AI论文生成工具,让写科研论文更高效!
  • 流量指纹混淆终极指南:模拟主流浏览器与合法应用的 TLS 指纹 (JA3/JA4) 实战
  • 2026年质量好的铠装缝/厂房铠装缝厂家采购参考指南(必看) - 品牌宣传支持者
  • 2026年靠谱的广东贝壳粉环保涂料/广东优质环保涂料厂家选购完整指南 - 品牌宣传支持者
  • AI写论文有妙招,这4款AI论文生成工具,让写职称论文更简单
  • 1985-2024年瞪羚、独角兽与科技型初创企业专利申请与授权信息
  • 算法导论阅读记录
  • .NET 10 C# 14 New Features 新增功能介绍-带修饰符的简单 lambda 参数
  • 【C++ vector】
  • AI 是怎么学会的?——从做错一道题说起
  • 2026年比较好的电摩机雕刻工具/打磨雕刻工具厂家热销推荐 - 品牌宣传支持者
  • Redis脑裂问题处理——基于min-replicas-to-write配置