5.2 KiB
2024巴黎奥运会视频弹幕分析挖掘
这个存储库包含了2024巴黎奥运会视频弹幕分析挖掘的代码,这是一种网络爬虫方法,用于从B站爬取相关视频弹幕,并将数据进行词云可视化分析,最终得到统计结论。
背景
2024年第三十三届夏季奥林匹克运动会(2024 Summer Olympics),一般称为2024巴黎奥运会(Paris 2024),于2024年7月26日至8月11日在法国巴黎举行,此次为法国相隔100年后再次举办夏季奥运会。巴黎成为继英国伦敦后,第二个三度举办夏季奥运会的城市,前两次分别在1900年及1924年举办。最终,美国代表团以40枚金牌、126枚奖牌,坐拥奖牌榜首位;中国代表团以40枚金牌、91枚奖牌排名第二;东道主法国代表团则拿下16枚金牌、64枚奖牌位列第五。本届是现代夏季奥运会历史以来,第二次有多于一个国家的代表团(美国和中国),获得最多且同样数量的金牌。
2024巴黎奥运会,这场体育盛宴不仅承载着运动员的汗水与梦想,更是工业数字化浪潮的壮阔展示。在这场跨越国界的竞技中,数字科技如同隐形的魔术师,悄然编织着赛事的每一个细节,从幕后到台前,从组织策划到观众体验,全方位塑造着奥运会的面貌,让我们见证了一个科技与体育深度融合的新时代。
功能
该代码使用爬虫在B站爬取关键词为“2024巴黎奥运会”的综合排序前300的所有视频弹幕,并统计AI技术应用方面的每种弹幕数量,输出数量排名前8的弹幕,同时对采集的所有数据进行词云可视化分析,制作词云图,最后通过统计数据得出当前B站用户对于2024巴黎奥运会应用AI技术的主流看法。
- 视频弹幕搜索:从指定平台获取视频弹幕。
- 弹幕数据分析:对获取的弹幕进行分析和计数。
- 可视化结果:生成词云图以展示分析结果。
- 性能分析:利用性能分析工具对代码性能进行评估。
目录结构
102201539/
│
├── data/ # 存放数据文件的目录
│ ├── all_danmakus.xlsx # 综合排序前300的所有视频弹幕
│ ├── top_danmakus.xlsx # 与赛事应用AI相关的数量排名前8的弹幕
│ └── result.png # 词云图
│
├── tests/ # 存放测试代码的目录
│ ├── init.py # 将 tests 目录视为包
│ ├── test_main.py # 对 main.py 中功能的单元测试
│ ├── test_analyse.py # 对 analyse.py 中功能的单元测试
│ └── test_visualization.py # 对 visualization.py 中功能的单元测试
│
├── main.py # 主程序文件,包含程序的入口和主要逻辑
├── analyse.py # 分析模块,处理弹幕数据的功能
├── visualization.py # 可视化模块,用于生成图表和可视化结果
├── profiler.py # 性能分析模块,用于分析程序性能
├── china_map.png # 中国地图图像,用于制作词云图样式
├── README.md # 项目说明文档
├── requirements.txt # 项目依赖的 Python 包列表
└── .gitignore # Git 忽略文件
安装
1. 克隆仓库:
git clone https://code.educoder.net/p64wa3kxm/102201539.git
cd 102201539
2.创建虚拟环境:
python -m venv venv
source venv/bin/activate # 在 Windows 上使用 venv\Scripts\activate
3.安装依赖:
beautifulsoup4==4.12.3
jieba==0.42.1
matplotlib==3.8.0
numpy==1.18.1
pandas==2.2.2
pillow==10.4.0
requests==2.32.3
wordcloud==1.9.3
你可以使用:
pip install -r requirements.txt
使用说明
1.获取视频弹幕(main.py)
python main.py
输出结果: 综合排序前300的所有视频的弹幕数据被保存到 all_danmakus.xlsx 文件中。
2.分析视频弹幕(analyse.py)
python analyse.py
输出结果: 与赛事应用AI技术相关的排名前8的弹幕数据被保存到 top_danmakus.xlsx 文件中。
3.可视化(visualization.py)
python test_visualization.py
输出结果: 词云图保存到 wordcloud.png,可以使用图像查看工具查看。
性能分析
首先确保你已经安装了 snakeviz 模块,你可以使用:
pip install snakeviz
使用 cProfile 运行性能分析模块,并生成性能分析文件output.prof:
python -m cProfile -o output.prof profiler.py
可视化性能分析结果:
snakeviz output.prof
最后你可以打开浏览器查看输出。
单元测试
如果你只想运行测试而不关心覆盖率,你可以使用:
python -m unittest discover -s tests
如果你希望运行测试并收集覆盖率信息,首先确保你已经安装了 coverage 模块,你可以使用:
pip install coverage
运行测试并收集覆盖率:
coverage run -m unittest discover -s tests
生成终端输出的覆盖率报告:
coverage report
生成 HTML 格式的覆盖率报告:
coverage html