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 movieList = spider.crawlMovies(); // 2. 清洗数据 List 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(); } } }