From 7f72c587466c77d4503aa1a070b0ebc88b5b1f18 Mon Sep 17 00:00:00 2001 From: 2509165046 <2509165046@student.edu.cn> Date: Sun, 5 Jul 2026 16:21:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=9C=9F=E6=9C=AB=E7=BB=83?= =?UTF-8?q?=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- q2_1_crawler/movie.html | 102 ++++++++++++++++++++++++++++++ q2_1_crawler/movie.json | 102 ++++++++++++++++++++++++++++++ q2_1_crawler/q2_1.py | 48 ++++++++++++++ q2_1_crawler/q2_2.py | 43 +++++++++++++ q3/q3_1/q3_1_image_label.zip | Bin 0 -> 893 bytes q3/q3_2/q3_2_takeout_reviews.json | 1 + q3/q3_3_质量自评.md | 9 +++ q4/q4_1/q4_1.py | 40 ++++++++++++ q4/q4_1/q4_1_bar.png | Bin 0 -> 41068 bytes q4/q4_2/q4_2.py | 28 ++++++++ q4/q4_2/q4_2_scatter.png | Bin 0 -> 45534 bytes q4/q4_3a/q4_3a.py | 24 +++++++ q4/q4_3a/q4_3a_hist.png | Bin 0 -> 31725 bytes q4/q4_3b/q4_3b.py | 24 +++++++ q4/q4_3b/q4_3b_hist.png | Bin 0 -> 30008 bytes 15 files changed, 421 insertions(+) create mode 100644 q2_1_crawler/movie.html create mode 100644 q2_1_crawler/movie.json create mode 100644 q2_1_crawler/q2_1.py create mode 100644 q2_1_crawler/q2_2.py create mode 100644 q3/q3_1/q3_1_image_label.zip create mode 100644 q3/q3_2/q3_2_takeout_reviews.json create mode 100644 q3/q3_3_质量自评.md create mode 100644 q4/q4_1/q4_1.py create mode 100644 q4/q4_1/q4_1_bar.png create mode 100644 q4/q4_2/q4_2.py create mode 100644 q4/q4_2/q4_2_scatter.png create mode 100644 q4/q4_3a/q4_3a.py create mode 100644 q4/q4_3a/q4_3a_hist.png create mode 100644 q4/q4_3b/q4_3b.py create mode 100644 q4/q4_3b/q4_3b_hist.png diff --git a/q2_1_crawler/movie.html b/q2_1_crawler/movie.html new file mode 100644 index 0000000..c8a0a99 --- /dev/null +++ b/q2_1_crawler/movie.html @@ -0,0 +1,102 @@ +[ + { + "id": "1", + "title": "阿甘正传", + "director": "Frank Darabont", + "year": "2023", + "rating": "8.5", + "duration": "112", + "genre": "科幻", + "actors_count": "4" + }, + { + "id": "2", + "title": "忠犬八公的故事", + "director": "陈凯歌", + "year": "2023", + "rating": "6.9", + "duration": "102", + "genre": "动画", + "actors_count": "4" + }, + { + "id": "3", + "title": "放牛班的春天", + "director": "Robert Zemeckis", + "year": "1993", + "rating": "7.6", + "duration": "175", + "genre": "动画", + "actors_count": "5" + }, + { + "id": "4", + "title": "星际穿越", + "director": "James Cameron", + "year": "2024", + "rating": "9.1", + "duration": "92", + "genre": "喜剧", + "actors_count": "5" + }, + { + "id": "5", + "title": "千与千寻", + "director": "宫崎骏", + "year": "2007", + "rating": "8.3", + "duration": "146", + "genre": "悬疑", + "actors_count": "4" + }, + { + "id": "6", + "title": "肖申克的救赎", + "director": "Christopher Nolan", + "year": "1997", + "rating": "8.3", + "duration": "117", + "genre": "爱情", + "actors_count": "5" + }, + { + "id": "7", + "title": "盗梦空间", + "director": "Lasse Hallström", + "year": "2001", + "rating": "7.5", + "duration": "131", + "genre": "悬疑", + "actors_count": "3" + }, + { + "id": "8", + "title": "泰坦尼克号", + "director": "Rajkumar Hirani", + "year": "1994", + "rating": "6.8", + "duration": "163", + "genre": "喜剧", + "actors_count": "4" + }, + { + "id": "9", + "title": "三傻大闹宝莱坞", + "director": "Christophe Barratier", + "year": "1997", + "rating": "6.8", + "duration": "107", + "genre": "冒险", + "actors_count": "5" + }, + { + "id": "10", + "title": "霸王别姬", + "director": "Christopher Nolan", + "year": "2006", + "rating": "9.1", + "duration": "98", + "genre": "科幻", + "actors_count": "2" + } +] \ No newline at end of file diff --git a/q2_1_crawler/movie.json b/q2_1_crawler/movie.json new file mode 100644 index 0000000..c8a0a99 --- /dev/null +++ b/q2_1_crawler/movie.json @@ -0,0 +1,102 @@ +[ + { + "id": "1", + "title": "阿甘正传", + "director": "Frank Darabont", + "year": "2023", + "rating": "8.5", + "duration": "112", + "genre": "科幻", + "actors_count": "4" + }, + { + "id": "2", + "title": "忠犬八公的故事", + "director": "陈凯歌", + "year": "2023", + "rating": "6.9", + "duration": "102", + "genre": "动画", + "actors_count": "4" + }, + { + "id": "3", + "title": "放牛班的春天", + "director": "Robert Zemeckis", + "year": "1993", + "rating": "7.6", + "duration": "175", + "genre": "动画", + "actors_count": "5" + }, + { + "id": "4", + "title": "星际穿越", + "director": "James Cameron", + "year": "2024", + "rating": "9.1", + "duration": "92", + "genre": "喜剧", + "actors_count": "5" + }, + { + "id": "5", + "title": "千与千寻", + "director": "宫崎骏", + "year": "2007", + "rating": "8.3", + "duration": "146", + "genre": "悬疑", + "actors_count": "4" + }, + { + "id": "6", + "title": "肖申克的救赎", + "director": "Christopher Nolan", + "year": "1997", + "rating": "8.3", + "duration": "117", + "genre": "爱情", + "actors_count": "5" + }, + { + "id": "7", + "title": "盗梦空间", + "director": "Lasse Hallström", + "year": "2001", + "rating": "7.5", + "duration": "131", + "genre": "悬疑", + "actors_count": "3" + }, + { + "id": "8", + "title": "泰坦尼克号", + "director": "Rajkumar Hirani", + "year": "1994", + "rating": "6.8", + "duration": "163", + "genre": "喜剧", + "actors_count": "4" + }, + { + "id": "9", + "title": "三傻大闹宝莱坞", + "director": "Christophe Barratier", + "year": "1997", + "rating": "6.8", + "duration": "107", + "genre": "冒险", + "actors_count": "5" + }, + { + "id": "10", + "title": "霸王别姬", + "director": "Christopher Nolan", + "year": "2006", + "rating": "9.1", + "duration": "98", + "genre": "科幻", + "actors_count": "2" + } +] \ No newline at end of file diff --git a/q2_1_crawler/q2_1.py b/q2_1_crawler/q2_1.py new file mode 100644 index 0000000..22dbf75 --- /dev/null +++ b/q2_1_crawler/q2_1.py @@ -0,0 +1,48 @@ +import requests +from bs4 import BeautifulSoup as bs +import json + +url = 'https://exam.detr.top/exam-b/movies' +headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0', + 'Referer':'https://exam.detr.top/exam-b/movies'} +req = requests.get(url, headers=headers) +req.encoding="utf-8" + +data=[] + +soup=bs(req.text,"html.parser") +# print(soup) +#id, title, director, year, rating, duration, genre, actors-count + +items=soup.select('.item-row') +# movie_list=[] +for i in range(len(items)): + id=items[i].find("td",class_="item-id").get_text() + title=items[i].find("td",class_="item-title").get_text().strip() + director=items[i].find("td",class_="item-director").get_text().strip() + year=items[i].find("td",class_="item-year").get_text() + rating=items[i].find("td",class_="item-rating").get_text() + duration=items[i].find("td",class_="item-duration").get_text() + genre=items[i].find("td",class_="item-genre").get_text() + actors_count=items[i].find("td",class_="item-actors-count").get_text() + + data.append({ + "id":id, + "title":title, + "director":director, + "year":year, + "rating":rating, + "duration":duration, + "genre":genre, + "actors_count":actors_count + + }) + +print(data) + + +with open('movie.json', 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=2) + +with open("movie.html","w",encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=2) \ 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..f30c2f7 --- /dev/null +++ b/q2_1_crawler/q2_2.py @@ -0,0 +1,43 @@ +# ① 找出评分最高和最低的电影,打印电影名 + 评分。 +# ② 统计各类型的电影数量,用字典格式输出。 +# ③ 统计各导演的电影数量,用字典格式输出。 +# ④ 统计 2020 年(含)以后上映的电影数量。 + +import json + + + +with open('movie.json', 'r', encoding='utf-8') as f: + data=json.load(f) + # print(data) + + +sort_movie=sorted(data,key=lambda x:x["rating"]) +min=sort_movie[0] +max=sort_movie[-1] +print("评分最低的电影",min["title"],min["rating"]) +print("评分最高的电影",max["title"],max["rating"]) + +genre_shu={} +for g in data: + ge=g["genre"] + if ge in genre_shu: + genre_shu[ge]+=1 + else: + genre_shu[ge]=1 +print("各类型的电影数量",genre_shu) + +director_shu={} +for d in data: + di=d["director"] + if di in director_shu: + director_shu[di]+=1 + else: + director_shu[di]=1 +print("各导演的电影数量",director_shu) + +a=0 +for y in data: + if int(y["year"]) >= 2020: + a+=1 +print("2020 年(含)以后上映的电影数量",a) \ No newline at end of file diff --git a/q3/q3_1/q3_1_image_label.zip b/q3/q3_1/q3_1_image_label.zip new file mode 100644 index 0000000000000000000000000000000000000000..5b08d8435c580cb7bd58bf3da977c88ded469839 GIT binary patch literal 893 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 Kh1G3IF8l?ThZpSt literal 0 HcmV?d00001 diff --git a/q4/q4_2/q4_2.py b/q4/q4_2/q4_2.py new file mode 100644 index 0000000..cf32d5b --- /dev/null +++ b/q4/q4_2/q4_2.py @@ -0,0 +1,28 @@ +import matplotlib.pyplot as plt +import json + +rating=[] +duration=[] + +with open(r'D:\桌面\期末考试\simulated-examination\q2_1_crawler\movie.json', 'r', encoding='utf-8') as f: + data=json.load(f) + # print(data) + for i in data: + rating.append(i["rating"]) + duration.append(i["duration"]) +plt.figure(figsize=(12, 8)) +plt.scatter(duration, rating, + c='red', + s=80, # 点的大小 + alpha=0.6, # 透明度 + edgecolors='white') # 点的边框 +plt.title('时长与评分关系散点图', fontsize=14) +plt.xlabel('时长', fontsize=12) +plt.ylabel('评分', fontsize=12) +plt.grid(True, linestyle='--', alpha=0.5) + + +import os +save_path = os.path.join(os.path.dirname(__file__),"q4_2_scatter.png") +plt.savefig(save_path, dpi=150,format='png') +plt.show() \ No newline at end of file diff --git a/q4/q4_2/q4_2_scatter.png b/q4/q4_2/q4_2_scatter.png new file mode 100644 index 0000000000000000000000000000000000000000..dc99ee48bfcfd7d9d1d05ca1c4ce1ea787289223 GIT binary patch literal 45534 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 literal 0 HcmV?d00001 diff --git a/q4/q4_3a/q4_3a.py b/q4/q4_3a/q4_3a.py new file mode 100644 index 0000000..c8ed2f4 --- /dev/null +++ b/q4/q4_3a/q4_3a.py @@ -0,0 +1,24 @@ +import matplotlib.pyplot as plt +import json + +rating=[] + +with open(r'D:\桌面\期末考试\simulated-examination\q2_1_crawler\movie.json', 'r', encoding='utf-8') as f: + data=json.load(f) + # print(data) + for i in data: + rating.append(i["rating"]) + +plt.figure(figsize=(12,8)) +plt.hist(rating, # 数据 + bins=10, # 分成几个柱子 + color='#3498DB', # 颜色 + edgecolor='white') # 柱子边框颜色 +plt.title('评分分布', fontsize=14) +plt.xlabel('评分', fontsize=13) +plt.grid(True, linestyle='--', alpha=0.5, axis='y') + +import os +save_path = os.path.join(os.path.dirname(__file__),"q4_3a_hist.png") +plt.savefig(save_path, dpi=150,format='png') +plt.show() \ No newline at end of file diff --git a/q4/q4_3a/q4_3a_hist.png b/q4/q4_3a/q4_3a_hist.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e41a151d2a47b8ea1987052e4f51e144c4422a GIT binary patch literal 31725 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 literal 0 HcmV?d00001 diff --git a/q4/q4_3b/q4_3b.py b/q4/q4_3b/q4_3b.py new file mode 100644 index 0000000..7b2480a --- /dev/null +++ b/q4/q4_3b/q4_3b.py @@ -0,0 +1,24 @@ +import matplotlib.pyplot as plt +import json +duration=[] + +with open(r'D:\桌面\期末考试\simulated-examination\q2_1_crawler\movie.json', 'r', encoding='utf-8') as f: + data=json.load(f) + # print(data) + for i in data: + duration.append(i["duration"]) + +plt.figure(figsize=(12,8)) +plt.hist( duration, # 数据 + bins=10, # 分成几个柱子 + color='#3498DB', # 颜色 + edgecolor='white') # 柱子边框颜色 +plt.title('时长分布', fontsize=14) +plt.xlabel('时长(分钟)', fontsize=13) +plt.grid(True, linestyle='--', alpha=0.5, axis='y') + + +import os +save_path = os.path.join(os.path.dirname(__file__),"q4_3b_hist.png") +plt.savefig(save_path, dpi=150,format='png') +plt.show() \ No newline at end of file diff --git a/q4/q4_3b/q4_3b_hist.png b/q4/q4_3b/q4_3b_hist.png new file mode 100644 index 0000000000000000000000000000000000000000..0dfef738d48299fbfbe499e6824a2e1a9369cc6c GIT binary patch literal 30008 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 bL)~9(<9qC?puh;Sy{=wXyOewJ?&JRhH