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.
 
 
App 9720cafb12 添加项目文件 3 weeks ago
..
src 添加项目文件 3 weeks ago
target 添加项目文件 3 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. 功能模块

  1. 网络爬虫 (MovieCrawler): 使用 Jsoup 模拟浏览器请求,抓取电影排名、标题、评分、年份、导演及评价人数。
  2. 数据清洗与模型 (Movie): 定义实体类,清洗抓取到的 HTML 文本并进行格式化。
  3. 数据分析 (DataAnalyzer): 使用 Java 8 Stream API 进行统计计算(平均分、评分段分布等)。
  4. 结果展示 (ResultDisplay): 控制台格式化输出表格,并生成 PNG 格式的评分分布图表。
  5. 持久化: 将抓取到的数据以 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: 简化实体类代码。