You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
5.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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
```