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.
|
|
2 weeks ago | |
|---|---|---|
| .. | ||
| src | 3 weeks ago | |
| target | 2 weeks ago | |
| DEVELOPMENT.md | 3 weeks ago | |
| ERROR_REPORT.md | 3 weeks ago | |
| README.md | 3 weeks ago | |
| movies_analysis.csv | 3 weeks ago | |
| movies_data.json | 3 weeks ago | |
| pom.xml | 3 weeks ago | |
| rating_chart.png | 3 weeks ago | |
| rating_distribution.png | 3 weeks ago | |
| run.log | 3 weeks ago | |
| startup.log | 3 weeks ago | |
| year_rating_scatter.png | 3 weeks ago | |
README.md
电影数据抓取与分析项目 (Java)
本项目是《高级程序设计(Java)》课程的实践项目,主要功能是从豆瓣电影 Top 250 抓取影片数据,进行清洗、存储和多维度的统计分析,并以图表和报告的形式展示结果。
1. 核心任务
- 数据源: 豆瓣电影 Top 250
- 技术栈: Java 11, Maven, Jsoup (爬虫), Jackson (JSON 解析), JFreeChart (图表生成)
- 分析维度: 评分分布、评价人数排行、导演统计等。
2. 功能模块
- 网络爬虫 (
MovieCrawler): 使用 Jsoup 模拟浏览器请求,抓取电影排名、标题、评分、年份、导演及评价人数。 - 数据清洗与模型 (
Movie): 定义实体类,清洗抓取到的 HTML 文本并进行格式化。 - 数据分析 (
DataAnalyzer): 使用 Java 8 Stream API 进行统计计算(平均分、评分段分布等)。 - 结果展示 (
ResultDisplay): 控制台格式化输出表格,并生成 PNG 格式的评分分布图表。 - 持久化: 将抓取到的数据以 JSON 格式保存至本地文件。
3. 运行指南
3.1 环境要求
- JDK 11+
- Maven 3.6+
3.2 编译与运行
在 project 目录下执行:
通用命令 (推荐):
mvn clean compile exec:java
手动指定主类 (若需要):
- Bash/CMD:
mvn exec:java -Dexec.mainClass="com.movieratings.Main" - PowerShell:
mvn exec:java "-Dexec.mainClass=com.movieratings.Main"
3.3 输出结果
- 控制台: 实时显示抓取进度、统计分析报告及格式化表格。
- 本地文件:
movies_data.json: 完整的电影数据抓取结果。rating_chart.png: 评分分布的可视化图表。
4. 依赖项 (pom.xml)
org.jsoup:jsoup: 网页解析。com.fasterxml.jackson.core:jackson-databind: JSON 序列化。org.jfree:jfreechart: 图表绘制。org.projectlombok:lombok: 简化实体类代码。