免责声明: 本脚本仅供个人学习和研究使用,禁止用于任何商业或非法用途。
概述
本Python脚本旨在辅助人文学科研究,特别是网络平台话语分析。它能够全面收集和分析B站视频的弹幕和评论数据,尤其适用于对亚文化和社会议题相关的海量内容进行深入研究、分析、补充和总结。
功能与原理
立即学习“”;
核心功能:
- 数据采集: 收集视频标题、作者、发布时间、播放量、收藏数、分享数、总弹幕数、评论数、视频描述、分类、视频链接和封面图链接等元数据。
- 弹幕分析: 提取100条弹幕,并进行情感评分、词性分析,记录时间戳和用户ID。
- 评论分析: 提取20条热门评论,并记录点赞数、情感分数、主题回复、ID、用户名和评论时间戳。
增强功能:
- 用户数据: (需提供Cookie) 获取弹幕发送者和评论用户的用户名、生日、注册时间、粉丝数和关注数等信息。
- IP定位: (需使用Selenium和浏览器驱动) 尝试获取评论用户的IP地址(此功能受限,成功率取决于B站的反爬机制)。
- 数据可视化: 将分析结果输出到Excel文件,包含情感分析中位数、词频统计、词云和条形图。
工作原理:
脚本通过B站开放API获取JSON数据,并使用BeautifulSoup解析XML数据。 SnowNLP、THULAC和jieba等自然语言处理库用于文本分词、停用词过滤、词性分析和词频统计。matplotlib用于生成图表。
快速入门
(适用于Windows和macOS系统)
-
安装依赖: 使用必要的Python库:
pip3 install --no-cache-dir -r https://ghproxy.com/https://github.com/excalibra/scripts/blob/main/d-txt/requirements.txt
登录后复制 -
运行脚本: (需要先将脚本下载到本地)
python3 get_bv_baseinfo.py
登录后复制脚本会提示您输入B站视频链接。
代码片段 (部分关键代码)
(完整代码请参考GitHub仓库)
# ... (其他代码省略) ... class BilibiliAPI: @staticmethod def get_bv_json(video_url): # ... (获取视频基本信息JSON) ... @staticmethod def get_danmu_xml(bv_json): # ... (获取弹幕XML) ... @staticmethod def get_comment_json(bv_json): # ... (获取评论JSON) ... # ... (其他代码省略) ... class Tools: @staticmethod def calculate_sentiment_score(text): # ... (计算情感得分) ... @staticmethod def get_word_cloud(sheet_name, workbook): # ... (生成词云) ... # ... (其他代码省略) ... if __name__ == '__main__': # ... (主程序) ...
登录后复制
使用说明
- 为了简化Cookie的输入,可以使用key=value格式,例如”a=a;”,以跳过不必要的登录步骤。
- IP定位功能需要使用Selenium和浏览器驱动程序,并登录您的Bilibili账户。由于B站的反爬虫机制,此功能的成功率无法保证。 请遵守B站的服务条款和机器人政策。
研究报告链接:
亚文化视角下的评论和弹幕研究: (完整报告会在后续补充“亚文化”和“社会问题”部分后公开。)
以上就是【Python】B站视频评论和弹幕处理分析脚本的详细内容,更多请关注php中文网其它相关文章!