# 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 中功能的单元测试
│   └── __pycache__/            # Python 编译的缓存文件夹
│   	└── (自动生成的缓存文件)   # 存放编译后的字节码文件
│
├── main.py                     # 主程序文件，包含程序的入口和主要逻辑
├── analyse.py                  # 分析模块，处理弹幕数据的功能
├── visualization.py            # 可视化模块，用于生成图表和可视化结果
├── profiler.py                 # 性能分析模块，用于分析程序性能
├── 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
```
