package java01; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { // 1. 初始化爬虫 JobCrawler crawler = new JobCrawler(); // 2. 爬取数据 System.out.println("开始爬取招聘数据..."); List jobs = crawler.crawlJobs("Java", 3); // 爬取3页数据 System.out.println("爬取完成,共获取 " + jobs.size() + " 条职位信息"); // 3. 数据清洗 DataCleaner cleaner = new DataCleaner(); jobs = cleaner.cleanJobs(jobs); System.out.println("数据清洗完成"); // 4. 数据存储 DataStorage storage = new DataStorage(); storage.writeJobsToCSV(jobs, "jobs.csv"); // 5. 数据分析 DataAnalyzer analyzer = new DataAnalyzer(); // 分析技能词频 Map skillFrequency = analyzer.analyzeSkillFrequency(jobs); // 分析薪资与经验关系 Map salaryByExperience = analyzer.analyzeSalaryByExperience(jobs); // 分析薪资与学历关系 Map salaryByEducation = analyzer.analyzeSalaryByEducation(jobs); // 分析不同地点薪资水平 Map salaryByLocation = analyzer.analyzeSalaryByLocation(jobs); // 分析薪资分布 Map salaryDistribution = analyzer.analyzeSalaryDistribution(jobs); // 6. 结果展示 ResultDisplay display = new ResultDisplay(); // 控制台输出 display.displaySkillFrequency(skillFrequency); display.displaySalaryByExperience(salaryByExperience); display.displaySalaryByEducation(salaryByEducation); display.displaySalaryByLocation(salaryByLocation); display.displaySalaryDistribution(salaryDistribution); // 生成图表 display.generateSkillFrequencyChart(skillFrequency, "skill_frequency.png"); display.generateSalaryDistributionChart(salaryDistribution, "salary_distribution.png"); display.generateSalaryByExperienceChart(salaryByExperience, "salary_by_experience.png"); System.out.println("\n所有任务完成!"); } }