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.

44 lines
1.5 KiB

package com.crawler;
import com.crawler.model.Movie;
import com.crawler.spider.DoubanSpider;
import com.crawler.utils.DataUtils;
import com.crawler.ui.MovieResultDisplay;
import java.util.List;
public class MovieMain {
public static void main(String[] args) {
try {
System.out.println("开始爬取豆瓣电影Top250数据...");
// 1. 启动爬虫
DoubanSpider spider = new DoubanSpider();
List<Movie> movieList = spider.crawlMovies();
// 2. 清洗数据
List<Movie> cleanedMovies = movieList.stream()
.map(DataUtils::cleanMovie)
.filter(movie -> movie != null)
.toList();
// 3. 保存数据到CSV文件
DataUtils.writeMovieToCSV(cleanedMovies, "douban_movies.csv");
System.out.println("数据已保存到 douban_movies.csv");
// 4. 展示结果
MovieResultDisplay.displayResults(cleanedMovies);
// 5. 生成图表
MovieResultDisplay.generateRatingDistributionChart(cleanedMovies);
MovieResultDisplay.generateYearDistributionChart(cleanedMovies);
MovieResultDisplay.generateGenreDistributionChart(cleanedMovies);
MovieResultDisplay.generateYearRatingChart(cleanedMovies);
System.out.println("\n爬虫任务完成!");
} catch (Exception e) {
e.printStackTrace();
}
}
}