拓冰建站拓冰建站
首页 / 资讯中心 / 正文

B站评论采集终极指南:一个开源爬虫,把一级二级评论连层级关系一起打包给你

B站评论采集终极指南一个开源爬虫把一级二级评论连层级关系一起打包给你【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper凌晨一点你盯着一个播放量破百万的视频发呆。评论区明明写着8888条评论可你手动往下翻了几十屏页面就再也加载不动了——真正能看到的永远只有最上面那二三十条。你想分析观众在讨论什么、哪条评论获赞最高、谁在回复谁可数据拿不全一切分析都无从谈起。这种看得见却摸不着的憋屈正是 BilibiliCommentScraper 这款B站评论采集工具存在的理由它用模拟真人浏览的方式把视频里所有可见的一级评论、二级评论连同完整的层级关系一起导出成 CSV交到你手里。一句话说清它是什么BilibiliCommentScraper 是一个开源B站评论爬虫把要分析的视频链接写进一个文本文件运行一条命令程序就会自动滚动页面、点开查看全部、翻遍二级评论的每一页最后按视频生成独立的 CSV 文件。跟市面上那些只能导出前几十条的浏览器插件不同它追求的是完整——爬到的数据和你手动滚动页面能看到的内容完全一致而且每一个字段都保留。它为什么跟别的爬虫不一样先说说那个冰山问题B站评论就像一座冰山。页面首次加载只露出水面的一角大概二三十条真正的体量全藏在水下要靠不断向下滚动才能一点点浮出来。很多评论工具选择走官方接口速度快但接口能返回的数据往往有配额限制层级关系也经常被压平更别提那些官方接口压根不给的字段。BilibiliCommentScraper 的解法很笨但很有效它不用接口而是用 Selenium 驱动一个真实浏览器像真人一样打开视频页、慢慢滚到底、逐条点开查看全部、在二级评论里一页页翻。它把你眼睛能看到的一切原原本本记录下来。这个设计带来两个直接好处数据更全只要页面能加载出来它就能采到不受接口配额限制。层级不丢一级评论的被评论者是 up 主二级评论的被评论者是上一级评论者谁回复了谁在输出表格里一目了然。顺带一提程序默认用无头模式不弹浏览器窗口运行还禁用了图片加载、静音、关掉 GPU 加速这些都是为了同一个目标让爬虫能安安静静地跑一整晚而不崩。三个能三个不能用一张诚实的能力清单认识它三个能 ✅能力对你意味着什么完整采集一级二级评论一个视频的全部可见评论而不是前20条保留谁回复谁的层级结构每条二级评论都带着它父评论的作者昵称和ID做对话链分析不用自己拼批量处理 断点续爬十几个视频丢进去排队爬中断了自动接着跑睡一觉起来全搞定三个不能 ❌不能绕过平台规则它只是老老实实模拟真人浏览该登录就登录该等就等不搞歪门邪道。不能拿到被平台隐藏、删除或违规屏蔽的评论B站存在评论数虚标现象爬到的数量通常小于标称数量这属于平台侧的问题任何工具都一样。不能无限加载程序默认最多向下滚动45次约920条一级评论、二级评论最多翻150页这是为了避免网页因内存占用过大而崩溃——一个聪明的自我保护。B站评论批量采集三步就能跑起来上手比你想象的简单不需要会写代码第一步装环境。系统里要有 Python 3然后执行一条命令装齐依赖pip install selenium beautifulsoup4 webdriver-manager第二步准备视频清单。在项目根目录的video_list.txt里每行贴一个视频链接https://www.bilibili.com/video/BV17M41117eg https://www.bilibili.com/video/BV1QF411q73H第三步运行。在项目目录执行python Bilicomment.py第一次运行时程序会弹出一个浏览器窗口你在里面登录一次B站账号登录成功后回到命令行按回车。这次登录的凭证会被保存到cookies.pkl以后每次运行都自动登录不用再折腾。让爬虫替你过夜一次完整的实战走查我把这套流程真实地走了一遍跟你说说会发生什么。把三个视频链接写进video_list.txt运行命令登录回车。接下来屏幕会开始滚动打印日志先是下滑滚动第1次 / 最大滚动45次、第2次……这是程序在模拟真人往下翻页面把整座冰山从水里拉出来。对于评论量很大的视频这一步会持续几分钟到几十分钟期间不需要你做任何事。滚动到底之后程序开始逐条处理一级评论写入 CSV → 检查有没有二级评论 → 有就点查看全部 → 翻页采集 → 采完下一条。每处理完一条控制台都会打印进度你可以清楚地看到它干到哪了。一觉醒来项目目录里多了三个以视频ID命名的 CSV 文件。用文本编辑器或 pandas 打开你会看到类似这样的完整数据结构每一行是一条评论字段包括编号、隶属关系一级/二级评论、被评论者昵称与ID、评论者昵称与用户ID、评论内容、发布时间、点赞数。拿这份数据做情感分析、用户画像、话题热度统计都是现成的原料。进阶玩家关心的三个调节旋钮跑通一次之后你会想知道怎么按自己的需求定制。程序留了三个关键的旋钮① 一级评论的采集深度。代码里的MAX_SCROLL_COUNT控制向下滚动的次数默认45次、约920条一级评论。如果你的视频评论量巨大可以调小这个值避免页面崩溃如果视频很火但滚动到底还没采完也可以适度调大——但要注意滚得越深网页内存占用越大崩的风险越高。② 二级评论的翻页上限。max_sub_pages默认150页作用是防止某个评论巨多的热门视频让浏览器撑不住。想要无限制可以设为None但除非你对内存很有信心否则不建议。③ 手工微调进度。程序运行中会不断把进度写进progress.txt内容大致长这样{video_count: 1, first_comment_index: 15, sub_page: 114, write_parent: 1}这个文件就是你的书签。想跳过某个爬了一半的视频把video_count加1。想从某条评论重新开始改first_comment_index。想彻底重来删掉这个文件即可。这种把进度暴露给你手工控制的思路在同类工具里很少见但真的实用。另外如果担心请求太频繁被B站冷处理可以给延时加上随机波动time.sleep(random.uniform(1, 5))让访问节奏更像真人。我替你踩过的坑一次性排掉新手最容易卡在下面几个地方我按症状→对策给你排好坑一Excel 打开 CSV 全是乱码。文件是 UTF-8 编码老版本 Excel 默认用 ANSI 解析就会乱码。对策在 Excel 里用数据→从文本/CSV 导入手动指定 UTF-8 编码或者干脆用记事本、VS Code、pandas 打开都没问题。坑二单元格显示 $NAME?。这不是爬虫坏了是有些用户昵称以-符号开头比如-GhausterExcel 误把它当公式处理了。把单元格格式改成文本即可。坑三报错 Permission denied。八成是 CSV 文件或 progress.txt 正被 Excel 占用着程序写不进去。关掉占用文件的程序再重跑还不行就尝试以管理员身份运行。坑四热门视频爬到一半浏览器崩了。程序会自动重启浏览器并断点续爬不用慌。但如果连滚动加载阶段都反复崩多半是内存扛不住此时把MAX_SCROLL_COUNT调小是正解。坑五采到的数量比页面上显示的总数少。这不是 bug。B站评论数存在虚标部分评论可能被隐藏或屏蔽。判断是否采全有个土办法你手动滚动页面看到最底部最后几条评论跟 CSV 里最后几行对得上就说明所有可见评论都拿到了。把它接进你的工作流然后开始吧回到开头那个凌晨一点的场景。有了这个工具你不再需要对着加载不动的页面干瞪眼把链接丢进列表登录一次剩下的交给爬虫——它像一位不知疲倦的夜班助理把一座评论冰山完整地捞上来、按层级摆好第二天早上整齐地出现在你的文件夹里。如果你是内容创作者可以用它分析观众到底爱看什么如果你是研究人员可以拿它做情感分析和话题追踪如果你在做竞品调研它可以帮你持续采集多个对标账号的视频评论。工具本身免费开源数据全部保存在本地安全可控。想动手的话拿到它的方式很简单git clone https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper cd BilibiliCommentScraper然后按照前面的三步把第一个视频链接写进video_list.txt运行python Bilicomment.py。今晚就让爬虫替你上一次夜班吧。【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门