ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

10分钟上手B站评论爬虫:用BilibiliCommentScraper把上万条评论一次拿全

10分钟上手B站评论爬虫:用BilibiliCommentScraper把上万条评论一次拿全 10分钟上手B站评论爬虫用BilibiliCommentScraper把上万条评论一次拿全【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper如果你是做内容运营、用户研究或者数据分析的多半迟早会遇到一个尴尬局面想拿一批B站评论做复盘结果手动翻了半天页面复制粘贴到表格里手指酸了、眼睛花了数据却连零头都没凑齐。别急这篇文章要介绍的BilibiliCommentScraper就是专门来替你干这种笨重活的——它是一个开源的B站评论爬虫能把视频下的全部可见评论含二级评论、昵称、ID、发布时间、点赞数批量抓下来存成规整的CSV表格还能断点续爬、自动重试。看完这篇B站评论爬虫使用教程你大概率能在10分钟内跑通自己的第一份数据。先讲个踩坑故事为了一组评论数据我搭进去一整晚前阵子帮朋友复盘一条科普视频的观众反馈。视频播放量几十万评论上万条其中夹杂着大量楼中楼式的二级评论。我当时的方案很朴素打开网页手动往下滚一条条复制到Excel里。结果呢滚了不到半小时页面就开始卡顿复制到三百多条时手一抖关错了窗口全部白干。更气人的是我复制的全是表面评论那些藏在回复里的用户真实讨论一条都没拿到。朋友听完直摇头你要的是完整评论数据不是看起来像那么回事的抽样。于是我开始找现成的工具试过几个号称能抓评论的脚本要么只给前几十条要么根本不管二级评论要么跑一半就报错退出。直到在开源社区里翻到BilibiliCommentScraper才发现原来拿全B站评论这件事是可以做到全自动的。工具速览一个命令让浏览器替你当苦力先说人话BilibiliCommentScraper 是一个用 Python 写的B站视频评论爬虫核心思路是让 Selenium 驱动一个真实的 Chrome 浏览器像真人一样打开视频页、滚动加载、展开回复、翻页然后把页面里出现的每一条评论连同它的户口信息一起解析出来。它不依赖B站接口所以能拿到的数据反而更完整。下面这张图就是它跑完后导出的 CSV 在表格软件里的样子每一行是一条评论层级、发言人、时间、点赞数清清楚楚每条记录都包含这些字段一级评论计数第几条一级评论方便定位隶属关系这条评论是一级评论还是二级评论被评论者昵称 / 被评论者ID回复的是谁一级评论显示为up主昵称 / 用户ID这条评论是谁发的评论内容完整原文发布时间精确到分钟点赞数受欢迎程度一目了然适用人群也很明确做视频反馈分析的内容创作者、做舆情和用户行为研究的研究人员、需要批量采集竞品互动数据的运营同学。你不需要会写爬虫只要会装软件、会改一个文本文件就够了。三步上手环境、配置、运行一次跑通这一步的目标只有一个让你在最短时间内看到自己的CSV文件。全程大概三步每一步都给你现成的命令。第1步装好运行环境电脑上需要有 Python 3 和 Chrome 浏览器推荐最新版。然后打开命令行一次性装齐依赖pip install selenium beautifulsoup4 webdriver-manager其中 webdriver-manager 会自动帮你匹配 Chrome 对应的驱动版本省去手动下载 chromedriver 的麻烦。第2步把视频链接写进列表文件在项目根目录找到video_list.txt每行粘贴一个B站视频的完整URL就像这样https://www.bilibili.com/video/BV17M41117eg https://www.bilibili.com/video/BV1QF411q73H想抓几个视频就写几行程序会按顺序挨个处理一个视频一个输出文件。第3步运行登录一次然后撒手python Bilicomment.py第一次运行时会弹出 Chrome 窗口并提示请登录登录成功跳转后按回车键继续。你用手机扫码登录一下跳转回页面后回车程序就开动了。关键在于登录状态会被存成本地的cookies.pkl文件之后每次运行都会自动复用除非你手动删掉这个文件否则只需要登录这一次。跑完以后每个视频会生成一个以视频ID命名的 CSV比如BV17M41117eg_评论数据.csv就在项目目录下。打开看看之前那张图里的数据就是你的了。原理解密为什么它比直接调接口抓得还全你可能会问B站明明有开放接口为什么要绕一圈用浏览器模拟答案藏在完整这两个字里。第一接口拿到的评论是缩水版。网页端能滚出来的评论往往比接口返回的更全尤其是那些深埋在回复里的二级评论。Selenium 模拟的是真人浏览路径先滚动页面触发懒加载把一条条一级评论逼出来再点开每条评论的展开回复翻遍它的二级评论分页最后连查看更多评论这类按钮也逐个点掉。这一套组合拳打下来页面可见的评论基本都能进表格。第二它自带一套进度存档机制。程序每处理完一段就会把当前进度写进progress.txt。比如下面这个进度文件{video_count: 1, first_comment_index: 15, sub_page: 114, write_parent: 1}含义是第1个视频已经完成正在处理第2个视频的第15条一级评论它的二级评论翻到了第114页这条一级评论本身已经写入文件。有了这个记账本哪怕你半夜断电、断网、程序被关掉重启后它都能从断点接着干已经写进 CSV 的内容也不会重复。第三错误处理是内置的。某个视频因为网络波动抓取失败它会被记进video_errorlist.txt不会让整个任务停下来。页面偶尔卡死程序会自动刷新浏览器、重启驱动继续断点续爬。说白了它被设计成可以挂机跑一整晚的那种工具。进阶玩法调参、批量与手动干预跑通基础流程之后你可以按自己的需求微调这几个关键参数它们都在Bilicomment.py里MAX_SCROLL_COUNT 45 # 滚动加载次数默认45次约能触达920条一级评论 max_sub_pages 150 # 每条一级评论最多翻多少页二级评论设为 None 表示不限两个参数的本质是同一个权衡抓得多但内存也吃得多。滚屏太多、翻页太多页面加载的数据量过大Chrome 可能直接崩溃。所以抓几万条评论的热门视频时建议反过来把数值调小分两轮抓而不是一味求大。如果你的请求频率太高、被B站限流控制台会长时间不打印进度。这时候可以引入随机延时模仿真人节奏import random time.sleep(random.uniform(1, 5)) # 随机等1到5秒具体范围可按需调整批量处理也讲究策略把评论量少的视频放在列表前面先跑让程序先积累完成的正反馈评论特别多的视频拆开处理避免单次运行内存爆掉。另外progress.txt是可以手动改的——想从头重爬就删掉这个文件某个视频实在抓不动想跳过直接把video_count的值加1即可。避坑指南新手最容易踩的5个坑坑1CSV 用 Excel 打开是乱码。文件是 UTF-8 编码Excel 默认按别的编码解析就会乱。先用记事本或 VS Code 打开确认数据没问题再在 Excel 里用数据→从文本/CSV导入并选 UTF-8就正常了。坑2单元格报错显示$NAME?。这不是数据坏了而是某条评论的昵称或内容以-开头比如昵称叫-GhausterExcel 把它误认成了公式。不影响数据本身介意的话可以在分析时用 pandas 统一处理。坑3报 Permission denied。十有八九是正在写入的 CSV 或progress.txt被其他程序占用了——比如你自己手滑在 Excel 里打开了输出文件。关掉占用程序再跑实在不行就以管理员身份运行。坑4抓到的数量比B站显示少。先别慌这是正常现象。B站的评论数是虚标的部分评论会被平台隐藏、封禁或由用户自行删除。验证方法很简单手动在网页里滚到评论区底部看最后几条评论跟 CSV 末尾是否对得上对得上就说明所有可见评论都抓全了。坑5程序长时间没动静。大概率是被限流了或者页面等着你输验证码。直接重启程序即可它会靠progress.txt断点续爬。如果频繁发生就把延时调大或改成随机延时。拿到数据之后从CSV到能用的分析结论数据到手只是第一步怎么用才是价值所在。CSV 是标准结构用 pandas 三五行就能读出结论import pandas as pd df pd.read_csv(BV17M41117eg_评论数据.csv) print(总评论数, len(df)) print(二级评论占比, (df[隶属关系] 二级评论).mean()) # 点赞最多的10条评论 df.nlargest(10, 点赞数)[[昵称, 评论内容, 点赞数]]再往深了做你至少能从三个维度榨干这批数据内容维度把高赞评论拿出来逐条看等于直接拿到观众的投票结果哪些点打动人、哪些槽点集中一目了然时间维度把发布时间按小时聚合能看到这个视频的讨论高峰在几点反推合适的发布与互动时段互动维度二级评论占比高的视频说明观众之间在对话社区的讨论氛围更浓这是比点赞更真实的活跃信号对于做竞品分析的人来说同一套流程跑一遍对手账号下的热门视频就能横向比较不同内容的互动质量做学术研究的人则可以基于这些结构化字段做情感分析和话题聚类。写在最后让它替你熬夜干活回到开头那个故事现在再做同样的复盘我只需要把视频链接写进video_list.txt运行程序登录一次然后该睡觉睡觉。第二天早上打开项目目录规整的 CSV 已经躺在那里上万条评论一条不少连谁回复了谁都理得清清楚楚。这就是 BilibiliCommentScraper 的核心价值把手动滚动复制粘贴这种重复劳动变成一条命令的事。上手成本极低你不需要懂爬虫原理装好环境、填好链接、跑起来就行。想立刻试一下的话照这个流程走git clone https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper.git cd BilibiliCommentScraper pip install selenium beautifulsoup4 webdriver-manager然后编辑video_list.txt运行python Bilicomment.py登录后回车剩下的交给程序。最后给一句实在的建议第一次跑先挑一条评论量几百的小视频练手熟悉整个流程和 CSV 结构再逐步上热门视频。工具已经替你准备好了最麻烦的那部分剩下的就看你打算从这些评论里挖出什么了。【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表