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