diff --git a/q2_1_crawler/movies.html b/q2_1_crawler/movies.html
new file mode 100644
index 0000000..aa3d3ba
--- /dev/null
+++ b/q2_1_crawler/movies.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+ 电影列表
+
+
+
+ 电影列表
+ 数据编号:B-20260623-4415
+
+
+
+
+ | 编号 |
+ 电影名 |
+ 导演 |
+ 上映年份 |
+ 评分 |
+ 时长(分钟) |
+ 类型 |
+ 主演数 |
+
+
+
+
+
+ | 1 |
+ 放牛班的春天 |
+ Frank Darabont |
+ 1994 |
+ 6.5 |
+ 141 |
+ 剧情 |
+ 3 |
+
+
+
+ | 2 |
+ 千与千寻 |
+ 陈凯歌 |
+ 2022 |
+ 7.2 |
+ 160 |
+ 科幻 |
+ 5 |
+
+
+
+ | 3 |
+ 肖申克的救赎 |
+ Robert Zemeckis |
+ 2012 |
+ 7.6 |
+ 94 |
+ 悬疑 |
+ 4 |
+
+
+
+ | 4 |
+ 星际穿越 |
+ James Cameron |
+ 2003 |
+ 9.1 |
+ 157 |
+ 喜剧 |
+ 2 |
+
+
+
+ | 5 |
+ 忠犬八公的故事 |
+ 宫崎骏 |
+ 2023 |
+ 7.5 |
+ 164 |
+ 喜剧 |
+ 5 |
+
+
+
+ | 6 |
+ 盗梦空间 |
+ Christopher Nolan |
+ 1999 |
+ 9.1 |
+ 98 |
+ 爱情 |
+ 2 |
+
+
+
+ | 7 |
+ 阿甘正传 |
+ Lasse Hallström |
+ 2000 |
+ 9.3 |
+ 153 |
+ 动画 |
+ 4 |
+
+
+
+ | 8 |
+ 泰坦尼克号 |
+ Rajkumar Hirani |
+ 2016 |
+ 8.3 |
+ 143 |
+ 剧情 |
+ 3 |
+
+
+
+ | 9 |
+ 霸王别姬 |
+ Christophe Barratier |
+ 2002 |
+ 7.4 |
+ 149 |
+ 悬疑 |
+ 4 |
+
+
+
+ | 10 |
+ 三傻大闹宝莱坞 |
+ Christopher Nolan |
+ 2007 |
+ 6.8 |
+ 136 |
+ 科幻 |
+ 2 |
+
+
+
+
+
+
\ No newline at end of file
diff --git a/q2_1_crawler/movies.json b/q2_1_crawler/movies.json
new file mode 100644
index 0000000..a5758bd
--- /dev/null
+++ b/q2_1_crawler/movies.json
@@ -0,0 +1,4 @@
+{
+ "actors_count": "0",
+ "movies": []
+}
\ No newline at end of file
diff --git a/q2_1_crawler/q2_2.py b/q2_1_crawler/q2_2.py
new file mode 100644
index 0000000..1ddf6da
--- /dev/null
+++ b/q2_1_crawler/q2_2.py
@@ -0,0 +1,45 @@
+import json
+
+# 读取爬取结果
+with open("movies.json", "r", encoding="utf-8") as f:
+ data = json.load(f)
+movies = data["movies"]
+
+# 容错判断,避免无数据时报错
+if not movies:
+ print("错误:无电影数据,请先运行爬虫q2_1.py!")
+else:
+ # ① 最高、最低评分电影
+ sorted_movies = sorted(movies, key=lambda x: x["rating"])
+ min_m = sorted_movies[0]
+ max_m = sorted_movies[-1]
+ print("① 评分极值:")
+ print(f"最低分:{min_m['title']} {min_m['rating']}")
+ print(f"最高分:{max_m['title']} {max_m['rating']}")
+
+ # ② 各类型数量,字典输出
+ genre_stat = {}
+ for m in movies:
+ g = m["genre"]
+ genre_stat[g] = genre_stat.get(g, 0) + 1
+ print("\n② 电影类型统计字典:")
+ print(genre_stat)
+
+ # ③ 各导演影片数量,字典输出
+ dir_stat = {}
+ for m in movies:
+ d = m["director"]
+ dir_stat[d] = dir_stat.get(d, 0) + 1
+ print("\n③ 导演影片数量统计字典:")
+ print(dir_stat)
+
+ # ④ 2020年(含)后上映总数
+ count_2020 = 0
+ for m in movies:
+ try:
+ year = int(m["year"])
+ if year >= 2020:
+ count_2020 += 1
+ except ValueError:
+ continue
+ print(f"\n④ 2020年(含)后上映电影总数:{count_2020}")
\ No newline at end of file