B站评论爬虫如何完整爬取上万条评论从下载到断点续爬的全程复盘【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper凌晨一点我盯着那个热门视频的评论区第 5 次滚动到底部想复制评论页面却开始疯狂闪烁——浏览器崩了之前复制的几百条全没了。那是我第一次意识到手动收集 B 站评论数据根本是条走不通的路。后来我找到了开源的 BilibiliCommentScraper一款基于 Selenium 的 B 站评论爬虫才真正把这件事从熬夜手动复制变成了挂机自动出表。这篇文章是我从踩坑到跑通全流程的完整复盘看完你也能照着做。它到底解决了什么三个让你想拍大腿的设计先说结论这工具解决的是三个其他方案都绕不过去的硬伤。1. 绕过 API 限制拿全所有可见评论市面上的简易爬虫大多走 B 站接口热门视频动辄上万条评论接口只给你前 20-30 条。BilibiliCommentScraper 反其道而行用 Selenium 模拟真实浏览器像真人一样反复向下滚动页面触发 B 站的前端加载逻辑。B 站每滚一次加载约 20 条一级评论工具默认滚动 45 次最多能加载约 920 条一级评论。实测中它曾完整爬取标称 7443 条评论的视频最终拿到 3581 条真实数据。别嫌少——B 站评论数本身就存在虚标只要和网页端滚动到底看到的最后几条对得上就算拿全了。2. 保住树状层级评论对话关系不丢评论区是树形结构一级评论直接回视频二级评论回一级。普通爬虫只抓表面一层对话关系全断。这个工具把每个一级评论下的查看全部点开逐页翻完它的二级评论连同被评论者的昵称和用户 ID 一并写入。输出 CSV 含 9 个字段编号、隶属关系一级/二级、被评论者昵称、被评论者 ID、昵称、用户 ID、评论内容、发布时间、点赞数。上图是工具采集的评论数据示例编号、隶属关系、双方昵称与 ID、内容、时间、点赞数一应俱全直接进表格分析。3. 游戏存档式的断点续爬这是我最喜欢的设计。程序把进度实时写进progress.txt格式如下{video_count: 1, first_comment_index: 15, sub_page: 114, write_parent: 1}含义分别是已完成第 1 个视频正在爬第 2 个视频的第 16 条一级评论它的二级评论已翻到第 114 页这条一级评论已写入。网页崩溃、断网、深夜断电——重新运行它直接从存档处续爬已经写进 CSV 的行也不会重复。配合 cookies 自动保存登录一次cookies.pkl存好之后每次运行自动登录挂一整晚爬几十个视频是常态。从 0 到 1 跑通全流程照着做就行第一步装环境。需要 Python 3.8 和 Chrome 浏览器然后装三个依赖pip install selenium beautifulsoup4 webdriver-manager第二步拿代码。克隆仓库并进入目录git clone https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper cd BilibiliCommentScraper第三步配置视频列表。编辑video_list.txt每行一个视频 URL支持批量https://www.bilibili.com/video/BV17M41117eg https://www.bilibili.com/video/BV1QF411q73H第四步运行。执行python Bilicomment.pyChrome 窗口会弹出看到请登录登录成功跳转后按回车键继续...时扫码登录跳转后回终端按回车程序就开跑了。初次登录的 cookies 会被存下来下次运行自动登录。第五步看结果。每个视频生成一个以视频 ID 命名的 CSV如BV17M41117eg.csv放在代码同级目录。爬取失败的视频会记进video_errorlist.txt方便你事后排查。这些坑我替你踩过了坑一CSV 用 Excel 打开乱码。工具输出的是 UTF-8 编码Excel 默认按 GBK 打开就花了。用记事本或 VS Code 打开没问题非要用 Excel走数据→从文本/CSV 导入并选 UTF-8。另外昵称以-开头时 Excel 会显示$NAME?这是 Excel 的公式误判不是数据错。坑二报 Permission denied。八成是 CSV 或progress.txt被 Excel 等程序占用了。程序自己会等 10 秒重试、最多 50 次你只要关掉占用文件的程序即可还不行就以管理员身份运行。坑三热门视频卡死。评论量太大无头浏览器会因内存不足崩溃。程序检测到异常会自动重启浏览器、断点续爬但如果页面还没滚完就崩重复多少次都一样此时应该调小MAX_SCROLL_COUNT默认 45或把max_sub_pages二级评论最大页数默认 150可设None无限制调低给浏览器减负。坑四程序长时间没动静。大概率是请求太频繁被 B 站冷处理了。解决办法是加随机延时把time.sleep(2)换成time.sleep(random.uniform(1, 5)) # 随机生成1到5秒之间的延时进阶玩法想跳过某个视频直接把progress.txt里的video_count加 1想从头爬删掉progress.txt即可。想要更丰富的数据用户等级、认证状态、回复数也可以改Bilicomment.py里的解析代码扩展字段——解析逻辑集中在extract_sub_reply等函数里改起来不算难。拿到数据之后能干什么爬下来的 CSV 配合 pandas 就是现成的分析素材内容创作者可以统计高赞评论、按小时看评论活跃时段反推选题和发布时间做市场调研的可以监测品牌视频下的负面舆情对比竞品视频的互动质量学术研究可以做情感分析和用户行为画像。甚至你可以拿它做评论数据归档——把喜欢的视频评论永久存成结构化表格。立刻上手的 3 个动作装好依赖、克隆仓库video_list.txt里先放 1 个评论量少的视频练手运行python Bilicomment.py完成首次扫码登录对照生成的 CSV 检查字段是否齐全没问题再批量加视频、开挂机。一次登录批量爬取断点续爬自动重试——这套流程跑通后你从想要评论数据到拿到结构化表格的距离可能只有一顿晚饭的时间。遇到拿不准的参数细节以项目仓库里的说明文档为准即可。【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考