ARTICLE DETAIL

资讯详情

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

B站评论爬取总差一截?BilibiliCommentScraper 把评论区完整装进CSV

B站评论爬取总差一截?BilibiliCommentScraper 把评论区完整装进CSV B站评论爬取总差一截BilibiliCommentScraper 把评论区完整装进CSV【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper深夜十一点你盯着浏览器里那个永远停在加载更多的评论区手指已经酸了。某个视频有八千多条评论而页面只肯展示前几十条你想分析用户真实反馈却发现连翻页都翻不动——这大概是每个想拿B站评论做点事的人都经历过的挫败。BilibiliCommentScraper就是为这个场景而生的开源工具。它是一条完整的评论采集流水线把视频链接喂给它它会自动滚动页面、逐条收录一级评论和二级评论把带完整层级关系的结构化数据写进 CSV 文件。你不用再手动截屏、复制、粘贴只要把任务交给它睡一觉起来数据就已经躺在硬盘里了。先弄清一件事评论数据的完整到底指什么很多人第一次接触评论采集以为把页面上的评论都复制下来就够了。但B站的评论区远没有看起来那么简单。一个视频的评论区实际由两层构成一级评论是直接发在视频下的评论二级评论则是一级评论下面的回复两者是明确的父子关系。页面默认只渲染一小部分内容其余评论要靠不断向下滚动才能触发加载而每条一级评论下的查看全部回复又藏着另一个分页体系。如果只拿到表层的一级评论你会丢掉大量信息用户之间的互动、针对某条评论的讨论、隐藏在回复里的真实态度全部付之东流。更麻烦的是层级关系一旦丢失后续做情感分析或社群网络研究时就无法还原谁在回应谁。所以判断一个爬虫工具合不合格关键就看两点能不能拿到全部可见评论以及能不能保住层级结构。这两点正是 BilibiliCommentScraper 的设计核心。认识这条评论采集流水线把 BilibiliCommentScraper 想象成一条有六个工序的小型流水线每一道工序都解决一个具体问题用video_list.txt批量登记任务一次跑完多个视频首次扫码登录一次之后靠cookies.pkl自动维持登录态自动向下滚动页面把隐藏的评论一层层逼出来顺着父子关系逐条收录二级评论翻页也不遗漏每完成一步就写一次progress.txt进度存档中断也能续跑每个视频输出一份独立 CSV字段齐全、开箱即用。技术上它走的是Selenium 驱动真实浏览器的路线而不是调用官方接口。这样做的直接好处是页面能看到什么它就能拿到什么不依赖接口是否开放、字段是否受限采集口径和你在网页里手动看到的一致。第一道工序把任务清单交给工具使用流水线之前先准备一份任务清单。在项目根目录新建video_list.txt把想采集的视频地址按行排开即可https://www.bilibili.com/video/BV17M41117eg https://www.bilibili.com/video/BV1QF411q73H https://www.bilibili.com/video/BV1c14y147g6这就是批量二字的落点。工具会按顺序处理清单里的每一个链接每个视频单独生成一份以视频 ID 命名的 CSV 文件互不干扰。想临时加一个视频往文件里追加一行就行想只跑其中几个调整清单顺序即可。文件本身就是你的任务看板。第二道工序登录一次之后不用再管B站的部分内容对未登录用户是有限制的因此工具设计了一个很省心的登录策略。首次运行程序会弹出浏览器窗口引导你登录B站账号。登录成功后它会把这时的登录凭证cookies序列化保存到项目目录下的cookies.pkl文件里。此后每次运行程序都会先尝试读取这份凭证自动登录窗口一闪而过你甚至不用碰键盘。需要留意的只有一个场景如果哪天登录态失效了比如长期未使用删掉cookies.pkl重新登录一次即可。这个文件就是你与B站之间的通行证保管好它批量任务就能长期无人值守地跑下去。第三道工序自动滚动把隐藏评论全部逼出来采集真正的难点在于B站评论是懒加载的页面只渲染一小部分剩下的要靠滚动触发。工具的应对方式很朴素——像人一样不断向下滚动页面每滚一次浏览器就多加载一批评论直到触底或达到滚动次数上限。这一行为由代码中的MAX_SCROLL_COUNT参数控制默认值为 45按B站每屏约 20 条一级评论估算最多能触达 920 条一级评论滚动到底后若页面高度不再变化程序会提前收工避免无谓空转。对评论量极大的热门视频官方标称的评论数往往存在虚标平台隐藏、删除或屏蔽了部分内容所以实测数据略小于标称数是正常现象。判断是否采全有一个土办法你手动滚动页面看到最后几条评论与 CSV 里最后几条记录一致就说明所有可见评论都已入库。第四道工序顺着层级逐条收录页面加载完之后才是体现功力的环节——层级关系。工具会遍历每一条一级评论先写入它的昵称、ID、内容、发布时间和点赞数紧接着检查这条评论下有没有查看全部回复按钮。如果有就点开它进入二级评论的翻页流程逐页读取所有回复并在每条记录里标注它隶属于哪条一级评论、回复的是谁。每条二级评论都带着被评论者昵称和被评论者ID两个字段配合隶属关系一级评论/二级评论标记整棵评论树的结构被原样平铺进表格里。你拿到的不再是一堆散乱的句子而是可以按层级重建的完整对话。二级评论的翻页深度由max_sub_pages参数控制默认上限 150 页。设置上限不是偷懒而是防止页面无限翻页导致浏览器内存暴涨甚至崩溃如果确实需要无限制采集也可以把它设为None。第五道工序中断了也不慌进度都在账上长任务最怕什么跑到一半网络波动、浏览器崩溃、电脑断电。BilibiliCommentScraper 为此准备了两层保险。第一层是断点续爬。程序每处理完一条评论就会把当前坐标写进progress.txt内容包括已完成第几个视频、正在处理第几条一级评论、二级评论翻到了第几页。下次运行时会自动读取这份档案从上次停下的位置接着跑已经写入 CSV 的内容也不会重复。想从头开始删掉progress.txt即可想跳过某个出问题的视频把video_count的值加一它就会自动略过。第二层是自动容错。遇到网页崩溃、网络中断或点击失败程序会尝试刷新页面、重启浏览器并自动续爬某个视频实在采不下来则会被记录到video_errorlist.txt里跑完一眼就能看出哪个任务出了问题不会在日志海里捞针。说白了这条流水线可以陪你通宵睡前启动第二天早上检查输出文件和错误清单就够了。第六道工序拿到手的 CSV 怎么用采集完成后每个视频都会生成一份 UTF-8 编码的 CSV 文件包含约十个字段编号、隶属关系、被评论者昵称、被评论者ID、评论者昵称、用户ID、评论内容、发布时间、点赞数。对一级评论而言被评论者会标注为 UP 主本人二级评论则记录它回复的具体对象层级一目了然。拿到 CSV 之后有两点小经验值得记住Excel 打开乱码文件本身是 UTF-8 编码Excel 默认可能识别不准。可以用记事本先打开验证或是在 Excel 里通过数据→从文本/CSV导入并手动指定 UTF-8 编码乱码立刻消失。单元格显示$NAME?部分昵称或内容以-开头比如昵称-GhausterExcel 会误判为公式。这是表格软件的解析习惯改用数据导入方式打开即可规避。字段齐全、结构规整这份 CSV 可以直接喂给 pandas、R 或任何你习惯的分析工具情感倾向、互动热度、高赞内容排行、话题分布都能从这些字段里算出来。让流水线跑得更顺的三个调参技巧默认参数对大多数视频够用但遇到特殊情况微调几个值能让体验好很多评论量巨大的热门视频可以调低MAX_SCROLL_COUNT减少滚动次数以控制内存占用防止页面在采集中途崩溃。请求过于频繁被冷落程序长时间没有新日志输出时多半是访问太密集触发了风控。把固定延时改成随机延时例如在代码里引入time.sleep(random.uniform(1, 5))生成 1 到 5 秒的随机等待请求节奏更接近真人操作。二级评论特别多的视频适当调大max_sub_pages上限让深层的讨论也有机会被收录。调整的对象都在Bilicomment.py文件顶部或对应函数里注释写得很清楚改完保存重跑即可。这些数据能帮你解决什么实际问题花力气把评论采全最终要落到使用场景上。以这套结构化数据为原料可以做不少事内容创作者复盘观众对每一期内容的真实反馈找到高赞评论背后的话题偏好为选题和发布时间提供依据研究者与学生用完整的评论文本做情感分析、话题聚类和用户行为研究层级关系还能支撑社群互动网络的构建企业与运营监测品牌相关视频下的舆论倾向对比竞品评论区的高频关键词辅助舆情判断和产品决策。数据本身的采集只是第一步但它决定了后续一切分析的地基是否稳固——地基缺了几块砖上面的楼盖得再高也是歪的。现在就把流水线跑起来开始使用只需要三步先确保电脑上装有 Python 3然后安装依赖库pip install selenium beautifulsoup4 webdriver-manager再准备一份video_list.txt任务清单。一切就绪后执行python Bilicomment.py按提示完成首次登录剩下的就交给流水线了。git clone https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper.git cd BilibiliCommentScraper pip install -r requirements.txt评论区是B站内容生态里最鲜活的一层也是很多分析工作的起点。与其继续在手动截屏里消耗耐心不如把这条采集流水线搭起来让 B站评论批量获取变成一件可重复、可验证、可交付的日常工作。下一次再需要B站评论数据时你会发现数据完整这件事其实可以不用靠运气。【免费下载链接】BilibiliCommentScraperB站视频评论爬虫 Bilibili完整爬取评论数据包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表