十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

B站评论采集终极指南:用BilibiliCommentScraper一键拿到完整评论数据

B站评论采集终极指南:用BilibiliCommentScraper一键拿到完整评论数据 B站评论采集终极指南用BilibiliCommentScraper一键拿到完整评论数据【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper凌晨一点运营岗的小王对着满屏数据发呆。老板丢给他一个任务分析竞品视频的评论区搞清楚用户到底在抱怨什么。他打开视频一看——评论区 8000 多条手动复制到天亮也复制不完。好不容易找到一个号称免费爬虫的小工具装上跑了一小时只拿到前 30 条二级评论全是空的评论区里用户互相回复的对话关系彻底丢失。这种看得见、拿不到的憋屈感凡是做过 B 站数据采集的人都懂。今天要介绍的BilibiliCommentScraper就是专门解决这个问题的开源工具它能模拟真人浏览网页把 B 站视频的一级评论、二级评论、昵称、用户ID、发布时间、点赞数全部完整抓下来还支持批量处理与断点续爬。这篇文章不堆术语我用大白话带你从零跑通第一个采集任务。30秒看懂这个工具能干什么先给结论再展开。下面是 BilibiliCommentScraper 的核心能力速览读完这张表你就知道它值不值得继续看下去核心能力具体表现你能得到什么批量采集 ✅一个video_list.txt文件放多个视频链接每个视频自动生成一个独立的 CSV 文件层级完整 一级评论 二级评论全部抓取评论的谁回复谁关系不丢失字段丰富 9 个字段昵称、用户ID、内容、时间、点赞数等拿到的数据可直接做分析断点续爬 ⚡进度自动写入progress.txt程序中断后接着跑不从头再来自动重试 ️网页崩溃、网络波动会自动重启浏览器可以放心挂机跑一整晚一句话总结你负责把视频链接填进去剩下的事它自己干。跑完回来每个视频的完整评论已经静静躺在 CSV 文件里了。上图就是工具产出的真实数据每一行是一条评论隶属关系列清楚标出它是一级评论还是二级评论如果是一条二级评论被评论者昵称和被评论者ID会记录它回复的是谁。这种层级结构正是很多简单爬虫给不了你的。幕后原理它凭什么能做到完整很多朋友一听到爬虫就头皮发麻其实 BilibiliCommentScraper 的原理一点也不玄乎我用三个生活化的比喻讲清楚。① 它像一位看得见的搬运工而不是隔空取物的黑客工具底层用的是 Selenium——一个能驱动真实 Chrome 浏览器的库。它会真的打开一个浏览器窗口像人一样滚动页面、点击查看全部回复按钮、翻二级评论的页码。B 站网页加载多少它就能看到多少所以能拿到的数据远比 API 接口给的多。这也是它能抓到二级评论的根本原因它走的不是后门而是正门只是手速比人快得多。② 它像快递分拣员把每件包裹放进对应格子浏览器加载出页面后工具会用 BeautifulSoup 把网页代码拆开按照 B 站固定的页面结构把每条评论的昵称、ID、内容、时间、点赞数分拣进对应字段再一行行写进 CSV。整个过程就像分拣员看包裹上的地址标签往对应的格子里一放简单直接。③ 它随身带着记账本和通行证记账本就是progress.txt每爬完一条评论就记一笔账比如已经爬完第 2 个视频的第 15 条一级评论。程序中断了没关系下次运行先翻记账本从上次停下的地方继续。通行证就是cookies.pkl第一次运行时让你扫码登录一次之后它把登录凭证存成文件下次自动带上不用反复登录。明白了这三点你就知道它完整、能续、不怕断的底气从哪来了。接下来我们动手跑一遍。分步实操从安装到拿到第一份评论数据整个过程大概 10 分钟跟着做就行。每一步我都标了成功标志方便你确认自己走对了。第 1 步准备环境你需要两样东西Python 3.8 或更高版本以及一个最新版 Chrome 浏览器。没有 Python 的话去官网下载安装包时记得勾选Add Python to PATH。第 2 步获取工具并安装依赖打开命令行依次执行git clone https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper cd BilibiliCommentScraper pip install selenium beautifulsoup4 webdriver-manager✅成功标志看到Successfully installed ...一类的提示且当前文件夹里能看到Bilicomment.py这个文件。别担心 webdriver-manager 是什么它是帮你自动匹配 Chrome 浏览器驱动的小助手装好后你完全不用手动下载任何东西。第 3 步填写视频列表用记事本打开video_list.txt每行放一个 B 站视频链接想爬几个就放几个https://www.bilibili.com/video/BV17M41117eg https://www.bilibili.com/video/BV1QF411q73H https://www.bilibili.com/video/BV1c14y147g6✅成功标志文件保存后每行一个链接没有空行和多余字符。这一步很关键链接格式错了对应视频会被跳过并记进video_errorlist.txt。第 4 步运行并完成登录python Bilicomment.py程序会先弹出一个浏览器窗口控制台提示请登录登录成功跳转后按回车键继续…。这时你扫码登录自己的 B 站账号登录一次即可之后自动复用跳转成功后再回到命令行按回车。✅成功标志控制台开始滚动打印下滑滚动第 N 次、每写完一条评论的进度提示。看到这些说明它已经开爬了你可以去泡杯茶。第 5 步查看结果每个视频跑完后代码同级目录下会出现一个以视频ID命名的 CSV 文件例如BV17M41117eg.csv。用记事本或 VS Code 打开就能看到完整数据如果坚持用 Excel请用数据→从文本/CSV 导入并选择 UTF-8 编码避免中文乱码。✅成功标志文件里有 9 列数据且隶属关系列同时出现一级评论和二级评论说明层级结构抓全了。进阶技巧锦囊4 个让效率翻倍的小招下面这些技巧按场景→做法→效果展开你遇到对应情况时直接取用即可。技巧 1爬热门视频总被 B 站冷处理场景评论量几万的大热视频跑着跑着控制台就长时间没动静了。做法把代码里的固定延时改成随机延时。先在文件顶部加import random再把需要延时的地方改成time.sleep(random.uniform(1, 5))。效果请求节奏变得像真人操作一样不规律被识别为机器人的概率大幅下降。技巧 2某个视频爬失败想直接跳过它场景第 3 个视频一直报错你想先跳过它爬后面的。做法打开progress.txt把video_count的值加 1保存后重新运行。效果程序会直接跳到下一个视频从头开始爬不浪费一秒钟。技巧 3电脑配置一般怕爬崩场景笔记本内存只有 8G滚动加载太多评论怕浏览器崩溃。做法把代码里的MAX_SCROLL_COUNT 45调小到 20 或 30把max_sub_pages 150调成 50。效果单次加载量变小内存占用明显下降程序更稳代价是单视频最多抓取的评论数相应减少适合先跑通流程的场景。技巧 4想快速知道评论总数和热度分布场景数据拿到手了想先看一眼整体情况。做法用 pandas 三行代码搞定import pandas as pd df pd.read_csv(BV17M41117eg.csv, encodingutf-8) print(len(df), df[点赞数].mean())效果立刻得到总评论数和平均点赞数判断这个视频的互动质量再决定要不要深入分析。真实案例拆解从原始 CSV 到一条结论光说功能不够我们模拟一个完整场景假设你是内容创作者想看看自己那条结石科普视频IDBV17M41117eg的观众反馈。跑完工具后CSV 里大概是这样的编号隶属关系被评论者昵称昵称评论内容发布时间点赞数1一级评论up主郑路过的2021/9/10 23:20876862二级评论郑用户A你好我们旅途同归天堂没有病痛2021/9/11 6:3654113二级评论郑用户B结石真的疼啊2021/9/11 6:56717拿到这份数据你的分析思路可以这样走import pandas as pd df pd.read_csv(BV17M41117eg.csv, encodingutf-8) # 1. 看结构一级、二级评论各多少 print(df[隶属关系].value_counts()) # 2. 看热度点赞最高的 5 条评论 print(df.nlargest(5, 点赞数)[[昵称, 评论内容, 点赞数]]) # 3. 看时间规律 df[发布时间] pd.to_datetime(df[发布时间]) print(df[发布时间].dt.hour.value_counts().sort_index())最后你得出的结论可能是这样的观众在疼痛感和治疗经历两个话题上讨论最热烈二级评论里大量是病友互相安慰的对话评论高峰出现在晚间 20 点到 23 点说明下一条视频可以选在这个时段发布。这份结论如果靠手动复制评论至少要大半天而用 BilibiliCommentScraper你只需要在跑数据的时间里去准备视频脚本。工具把最枯燥的部分做完了你只需专注思考。避坑与急救箱问题速查卡以下是新手最容易遇到的 4 个问题按症状—原因—解法整理遇到直接对号入座。症状原因解法CSV 用 Excel 打开全是乱码Excel 默认按系统编码打开而文件是 UTF-8用记事本或 VS Code 打开或 Excel 用数据→从文本/CSV导入并选 UTF-8报错Permission deniedCSV 或 progress.txt 被其他程序占用关闭占用文件的程序包括正开着的 Excel必要时以管理员身份运行程序长时间无输出请求太频繁被 B 站限流或要输验证码直接重启程序它会断点续爬若频繁发生改用随机延时爬到的数量比页面显示的少B 站评论数本身有虚标部分评论被隐藏或删除手动滚动到页面底部核对最后几条评论是否与 CSV 末尾一致一致即说明已完整还有两个小提醒一级评论的被评论者昵称和被评论者ID会显示up主这是程序主动写入的标记不是爬虫数据如果爬取超大热度的视频时页面反复崩溃优先把MAX_SCROLL_COUNT调小。延伸与边界它擅长什么不擅长什么诚实地说BilibiliCommentScraper 不是万能的了解它的边界能帮你少走弯路。它擅长的事批量抓取多个视频的完整评论尤其是二级评论这是很多同类工具做不到的长时间挂机运行断点续爬 自动重试的组合很适合夜里跑、白天看结果的工作流提供结构化的 CSV 数据直接对接 pandas、Excel 等分析工具它的局限本质是模拟浏览器比直接调 API 慢评论量极大的视频需要较长等待时间需要本机有 Chrome 和 Python 环境且依赖登录态cookies 失效时需要重新登录抓取上限受参数控制默认约 920 条一级评论二级评论默认最多 150 页这些都可以在代码里调整可以拓展的方向拿到 CSV 后你可以进一步做情感分析判断评论褒贬、词云可视化提炼高频词、或者按时间戳做发布时段优化。工具负责采集分析的自由度完全在你手里。现在就可以开始的第一步BilibiliCommentScraper 最大的价值就一句话它把拿全 B 站评论这件事从手动地狱变成了全自动流水线你只需要填链接、跑一次、拿数据。现在你要做的第一步很简单打开命令行执行git clone https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper然后往video_list.txt里放进第一个你想分析的视频链接运行python Bilicomment.py。建议先挑一个评论量几百条的小视频试水跑通全流程后再上热门视频——十分钟后你手里就会多出一份别人熬夜复制都拿不到的完整评论数据。【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表