Browse Source

上传文件至 'project1'

main
LiuZihan 3 weeks ago
parent
commit
d076d5a1b3
  1. 71
      project1/Main.java
  2. 101
      project1/movie_top100.csv
  3. 45
      project1/pom.xml
  4. BIN
      project1/排名顺序折线图.png
  5. BIN
      project1/柱状图.png

71
project1/Main.java

@ -0,0 +1,71 @@
package com.example;
import com.example.bean.Movie;
import com.example.crawler.MovieCrawler;
import com.example.chart.DrawChart;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 1. 爬取数据
MovieCrawler crawler = new MovieCrawler();
List<Movie> movies = crawler.start();
// 2. 数据清洗
List<Movie> cleanData = new ArrayList<>();
for (Movie movie : movies) {
if (movie.getTitle() != null && !movie.getTitle().isBlank()) {
cleanData.add(movie);
}
}
// ===================== CSV 保存功能 恢复!=====================
try (FileWriter writer = new FileWriter("movie_top100.csv")) {
writer.write("电影名称,评分,导演,上映年份\n");
for (Movie m : cleanData) {
writer.write(m.getTitle() + "," + m.getScore() + "," + m.getDirector() + "," + m.getYear() + "\n");
}
System.out.println("✅ CSV 文件已保存:movie_top100.csv");
} catch (Exception e) {
e.printStackTrace();
}
// ==============================================================
// 3. 评分统计
Map<String, Long> scoreCount = cleanData.stream()
.collect(Collectors.groupingBy(Movie::getScore, Collectors.counting()));
// 4. 控制台打印表格
System.out.println("\n==========================================");
System.out.println(" 电影评分统计表格 ");
System.out.println("==========================================");
System.out.printf("%-10s %-10s %-10s%n", "评分", "数量(部)", "占比(%)");
System.out.println("------------------------------------------");
double total = cleanData.size();
for (Map.Entry<String, Long> entry : scoreCount.entrySet()) {
String score = entry.getKey();
long count = entry.getValue();
double rate = (count * 100.0) / total;
System.out.printf("%-12s %-12d %-10.2f%n", score, count, rate);
}
System.out.println("------------------------------------------");
System.out.printf("总计:%d 部电影%n", (long) total);
System.out.println("==========================================");
// 5. 生成正常折线图:按排名 1→100 顺序连线
List<Double> scoreList = new ArrayList<>();
for (Movie movie : cleanData) {
scoreList.add(Double.parseDouble(movie.getScore()));
}
DrawChart drawing = new DrawChart();
drawing.drawByOrder(scoreList);
}
}

101
project1/movie_top100.csv

@ -0,0 +1,101 @@
电影名称,评分,导演,上映年份
肖申克的救赎,9.7,弗兰克·德拉邦特,1994
霸王别姬,9.6,陈凯歌,1993
泰坦尼克号,9.5,詹姆斯·卡梅隆,1997
阿甘正传,9.5,罗伯特·泽米吉斯,1994
千与千寻,9.4,宫崎骏,2001
美丽人生,9.5,罗伯托·贝尼尼,1997
星际穿越,9.4,克里斯托弗·诺兰,2014
这个杀手不太冷,9.4,吕克·贝松,1994
盗梦空间,9.4,克里斯托弗·诺兰,2010
楚门的世界,9.4,彼得·威尔,1998
辛德勒的名单,9.5,史蒂文·斯皮尔伯格,1993
忠犬八公的故事,9.4,莱塞·霍尔斯道姆,2009
海上钢琴师,9.3,朱塞佩·托纳多雷,1998
疯狂动物城,9.3,拜伦·霍华德,2016
三傻大闹宝莱坞,9.2,拉库马·希拉尼,2009
机器人总动员,9.3,安德鲁·斯坦顿,2008
放牛班的春天,9.3,克里斯托夫·巴拉蒂,2004
无间道,9.3,刘伟强,2002
控方证人,9.6,比利·怀尔德,1957
寻梦环游记,9.1,李·昂克里奇,2017
大话西游之大圣娶亲,9.2,刘镇伟,1995
熔炉,9.3,黄东赫,2011
触不可及,9.3,奥利维·那卡什,2011
教父,9.3,弗朗西斯·福特·科波拉,1972
末代皇帝,9.3,贝纳尔多·贝托鲁奇,1987
大话西游之大圣娶亲,9.2,刘镇伟,1995
熔炉,9.3,黄东赫,2011
触不可及,9.3,奥利维·那卡什,2011
教父,9.3,弗朗西斯·福特·科波拉,1972
末代皇帝,9.3,贝纳尔多·贝托鲁奇,1987
哈利·波特与魔法石,9.2,Chris,2001
当幸福来敲门,9.1,加布里尔·穆奇诺,2006
龙猫,9.2,宫崎骏,1988
活着,9.3,张艺谋,1994
怦然心动,9.1,罗伯·莱纳,2010
蝙蝠侠:黑暗骑士,9.2,克里斯托弗·诺兰,2008
指环王3:王者无敌,9.3,彼得·杰克逊,2003
我不是药神,9.0,文牧野,2018
乱世佳人,9.3,维克多·弗莱明,1939
飞屋环游记,9.1,彼特·道格特,2009
让子弹飞,9.0,姜文,2010
哈尔的移动城堡,9.1,宫崎骏,2004
十二怒汉,9.4,西德尼·吕美特,1957
海蒂和爷爷,9.3,阿兰·葛斯彭纳,2015
素媛,9.3,李濬益,2013
猫鼠游戏,9.1,史蒂文·斯皮尔伯格,2002
天空之城,9.2,宫崎骏,1986
鬼子来了,9.3,姜文,2000
摔跤吧!爸爸,9.0,涅提·蒂瓦里,2016
少年派的奇幻漂流,9.1,李安,2012
猫鼠游戏,9.1,史蒂文·斯皮尔伯格,2002
天空之城,9.2,宫崎骏,1986
鬼子来了,9.3,姜文,2000
摔跤吧!爸爸,9.0,涅提·蒂瓦里,2016
少年派的奇幻漂流,9.1,李安,2012
钢琴家,9.3,罗曼·波兰斯基,2002
指环王2:双塔奇兵,9.2,彼得·杰克逊,2002
死亡诗社,9.2,彼得·威尔,1989
大话西游之月光宝盒,9.0,刘镇伟,1995
绿皮书,8.9,彼得·法雷里,2018
何以为家,9.1,娜丁·拉巴基,2018
闻香识女人,9.1,马丁·布莱斯,1992
大闹天宫,9.4,万籁鸣,未知
黑客帝国,9.1,安迪·沃卓斯基,1999
指环王1:护戒使者,9.1,彼得·杰克逊,2001
罗马假日,9.1,威廉·惠勒,1953
教父2,9.3,弗朗西斯·福特·科波拉,1974
狮子王,9.1,Roger,1994
天堂电影院,9.2,朱塞佩·托纳多雷,1988
饮食男女,9.2,李安,1994
辩护人,9.2,杨宇硕,2013
本杰明·巴顿奇事,9.0,大卫·芬奇,2008
搏击俱乐部,9.0,大卫·芬奇,1999
美丽心灵,9.1,朗·霍华德,2001
穿条纹睡衣的男孩,9.2,马克·赫尔曼,2008
辩护人,9.2,杨宇硕,2013
本杰明·巴顿奇事,9.0,大卫·芬奇,2008
搏击俱乐部,9.0,大卫·芬奇,1999
美丽心灵,9.1,朗·霍华德,2001
穿条纹睡衣的男孩,9.2,马克·赫尔曼,2008
情书,8.9,岩井俊二,1995
哈利·波特与死亡圣器(下),9.0,大卫·叶茨,2011
两杆大烟枪,9.1,盖·里奇,1998
窃听风暴,9.2,弗洛里安·亨克尔·冯·多纳斯马尔克,2006
音乐之声,9.1,罗伯特·怀斯,1965
功夫,8.9,周星驰,2004
哈利·波特与阿兹卡班的囚徒,9.0,阿方索·卡隆,2004
西西里的美丽传说,8.9,朱塞佩·托纳多雷,2000
阿凡达,8.8,詹姆斯·卡梅隆,2009
看不见的客人,8.8,奥里奥尔·保罗,2016
拯救大兵瑞恩,9.1,史蒂文·斯皮尔伯格,1998
沉默的羔羊,8.9,乔纳森·戴米,1991
小鞋子,9.2,马基德·马基迪,1997
布达佩斯大饭店,8.9,韦斯·安德森,2014
蝴蝶效应,8.9,埃里克·布雷斯,2004
飞越疯人院,9.1,米洛斯·福尔曼,1975
禁闭岛,8.9,Martin,2010
还有明天,9.3,宝拉·柯特莱西,2023
心灵捕手,9.0,格斯·范·桑特,1997
致命魔术,8.9,克里斯托弗·诺兰,2006
1 电影名称 评分 导演 上映年份
2 肖申克的救赎 9.7 弗兰克·德拉邦特 1994
3 霸王别姬 9.6 陈凯歌 1993
4 泰坦尼克号 9.5 詹姆斯·卡梅隆 1997
5 阿甘正传 9.5 罗伯特·泽米吉斯 1994
6 千与千寻 9.4 宫崎骏 2001
7 美丽人生 9.5 罗伯托·贝尼尼 1997
8 星际穿越 9.4 克里斯托弗·诺兰 2014
9 这个杀手不太冷 9.4 吕克·贝松 1994
10 盗梦空间 9.4 克里斯托弗·诺兰 2010
11 楚门的世界 9.4 彼得·威尔 1998
12 辛德勒的名单 9.5 史蒂文·斯皮尔伯格 1993
13 忠犬八公的故事 9.4 莱塞·霍尔斯道姆 2009
14 海上钢琴师 9.3 朱塞佩·托纳多雷 1998
15 疯狂动物城 9.3 拜伦·霍华德 2016
16 三傻大闹宝莱坞 9.2 拉库马·希拉尼 2009
17 机器人总动员 9.3 安德鲁·斯坦顿 2008
18 放牛班的春天 9.3 克里斯托夫·巴拉蒂 2004
19 无间道 9.3 刘伟强 2002
20 控方证人 9.6 比利·怀尔德 1957
21 寻梦环游记 9.1 李·昂克里奇 2017
22 大话西游之大圣娶亲 9.2 刘镇伟 1995
23 熔炉 9.3 黄东赫 2011
24 触不可及 9.3 奥利维·那卡什 2011
25 教父 9.3 弗朗西斯·福特·科波拉 1972
26 末代皇帝 9.3 贝纳尔多·贝托鲁奇 1987
27 大话西游之大圣娶亲 9.2 刘镇伟 1995
28 熔炉 9.3 黄东赫 2011
29 触不可及 9.3 奥利维·那卡什 2011
30 教父 9.3 弗朗西斯·福特·科波拉 1972
31 末代皇帝 9.3 贝纳尔多·贝托鲁奇 1987
32 哈利·波特与魔法石 9.2 Chris 2001
33 当幸福来敲门 9.1 加布里尔·穆奇诺 2006
34 龙猫 9.2 宫崎骏 1988
35 活着 9.3 张艺谋 1994
36 怦然心动 9.1 罗伯·莱纳 2010
37 蝙蝠侠:黑暗骑士 9.2 克里斯托弗·诺兰 2008
38 指环王3:王者无敌 9.3 彼得·杰克逊 2003
39 我不是药神 9.0 文牧野 2018
40 乱世佳人 9.3 维克多·弗莱明 1939
41 飞屋环游记 9.1 彼特·道格特 2009
42 让子弹飞 9.0 姜文 2010
43 哈尔的移动城堡 9.1 宫崎骏 2004
44 十二怒汉 9.4 西德尼·吕美特 1957
45 海蒂和爷爷 9.3 阿兰·葛斯彭纳 2015
46 素媛 9.3 李濬益 2013
47 猫鼠游戏 9.1 史蒂文·斯皮尔伯格 2002
48 天空之城 9.2 宫崎骏 1986
49 鬼子来了 9.3 姜文 2000
50 摔跤吧!爸爸 9.0 涅提·蒂瓦里 2016
51 少年派的奇幻漂流 9.1 李安 2012
52 猫鼠游戏 9.1 史蒂文·斯皮尔伯格 2002
53 天空之城 9.2 宫崎骏 1986
54 鬼子来了 9.3 姜文 2000
55 摔跤吧!爸爸 9.0 涅提·蒂瓦里 2016
56 少年派的奇幻漂流 9.1 李安 2012
57 钢琴家 9.3 罗曼·波兰斯基 2002
58 指环王2:双塔奇兵 9.2 彼得·杰克逊 2002
59 死亡诗社 9.2 彼得·威尔 1989
60 大话西游之月光宝盒 9.0 刘镇伟 1995
61 绿皮书 8.9 彼得·法雷里 2018
62 何以为家 9.1 娜丁·拉巴基 2018
63 闻香识女人 9.1 马丁·布莱斯 1992
64 大闹天宫 9.4 万籁鸣 未知
65 黑客帝国 9.1 安迪·沃卓斯基 1999
66 指环王1:护戒使者 9.1 彼得·杰克逊 2001
67 罗马假日 9.1 威廉·惠勒 1953
68 教父2 9.3 弗朗西斯·福特·科波拉 1974
69 狮子王 9.1 Roger 1994
70 天堂电影院 9.2 朱塞佩·托纳多雷 1988
71 饮食男女 9.2 李安 1994
72 辩护人 9.2 杨宇硕 2013
73 本杰明·巴顿奇事 9.0 大卫·芬奇 2008
74 搏击俱乐部 9.0 大卫·芬奇 1999
75 美丽心灵 9.1 朗·霍华德 2001
76 穿条纹睡衣的男孩 9.2 马克·赫尔曼 2008
77 辩护人 9.2 杨宇硕 2013
78 本杰明·巴顿奇事 9.0 大卫·芬奇 2008
79 搏击俱乐部 9.0 大卫·芬奇 1999
80 美丽心灵 9.1 朗·霍华德 2001
81 穿条纹睡衣的男孩 9.2 马克·赫尔曼 2008
82 情书 8.9 岩井俊二 1995
83 哈利·波特与死亡圣器(下) 9.0 大卫·叶茨 2011
84 两杆大烟枪 9.1 盖·里奇 1998
85 窃听风暴 9.2 弗洛里安·亨克尔·冯·多纳斯马尔克 2006
86 音乐之声 9.1 罗伯特·怀斯 1965
87 功夫 8.9 周星驰 2004
88 哈利·波特与阿兹卡班的囚徒 9.0 阿方索·卡隆 2004
89 西西里的美丽传说 8.9 朱塞佩·托纳多雷 2000
90 阿凡达 8.8 詹姆斯·卡梅隆 2009
91 看不见的客人 8.8 奥里奥尔·保罗 2016
92 拯救大兵瑞恩 9.1 史蒂文·斯皮尔伯格 1998
93 沉默的羔羊 8.9 乔纳森·戴米 1991
94 小鞋子 9.2 马基德·马基迪 1997
95 布达佩斯大饭店 8.9 韦斯·安德森 2014
96 蝴蝶效应 8.9 埃里克·布雷斯 2004
97 飞越疯人院 9.1 米洛斯·福尔曼 1975
98 禁闭岛 8.9 Martin 2010
99 还有明天 9.3 宝拉·柯特莱西 2023
100 心灵捕手 9.0 格斯·范·桑特 1997
101 致命魔术 8.9 克里斯托弗·诺兰 2006

45
project1/pom.xml

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.crawler</groupId>
<artifactId>movie-crawler</artifactId>
<version>1.0</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- Jsoup:网页爬虫+HTML解析 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.4</version>
</dependency>
<!-- XChart:生成图表(简单易用) -->
<dependency>
<groupId>org.knowm.xchart</groupId>
<artifactId>xchart</artifactId>
<version>3.8.4</version>
</dependency>
<!-- OpenCSV:读写CSV文件 -->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.6</version>
</dependency>
<!-- MySQL驱动(可选,存数据库) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
</project>

BIN
project1/排名顺序折线图.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
project1/柱状图.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Loading…
Cancel
Save