上传文件至 q2_1_crawler
This commit is contained in:
152
q2_1_crawler/movies.html
Normal file
152
q2_1_crawler/movies.html
Normal file
@@ -0,0 +1,152 @@
|
||||
<!-- exam_fingerprint: B-20260623-4415 -->
|
||||
<!-- server_time: 2026-06-23 10:48:58 -->
|
||||
<!-- exam_paper: B -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>电影列表</title>
|
||||
<style>
|
||||
body { font-family: "Microsoft YaHei", sans-serif; margin: 20px; background: #f5f5f5; }
|
||||
h1 { color: #c0392b; }
|
||||
.meta { color: #999; font-size: 12px; margin-bottom: 15px; }
|
||||
.meta code { background: #e9ecef; padding: 2px 6px; border-radius: 3px; }
|
||||
table { width: 100%; border-collapse: collapse; background: white; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
|
||||
th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
|
||||
th { background: #c0392b; color: white; }
|
||||
tr:hover { background: #fef5f4; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>电影列表</h1>
|
||||
<p class="meta">数据编号:<code>B-20260623-4415</code></p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
<th>电影名</th>
|
||||
<th>导演</th>
|
||||
<th>上映年份</th>
|
||||
<th>评分</th>
|
||||
<th>时长(分钟)</th>
|
||||
<th>类型</th>
|
||||
<th>主演数</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>放牛班的春天</td>
|
||||
<td>Frank Darabont</td>
|
||||
<td>1994</td>
|
||||
<td>6.5</td>
|
||||
<td>141</td>
|
||||
<td>剧情</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>千与千寻</td>
|
||||
<td>陈凯歌</td>
|
||||
<td>2022</td>
|
||||
<td>7.2</td>
|
||||
<td>160</td>
|
||||
<td>科幻</td>
|
||||
<td>5</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>肖申克的救赎</td>
|
||||
<td>Robert Zemeckis</td>
|
||||
<td>2012</td>
|
||||
<td>7.6</td>
|
||||
<td>94</td>
|
||||
<td>悬疑</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>星际穿越</td>
|
||||
<td>James Cameron</td>
|
||||
<td>2003</td>
|
||||
<td>9.1</td>
|
||||
<td>157</td>
|
||||
<td>喜剧</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>忠犬八公的故事</td>
|
||||
<td>宫崎骏</td>
|
||||
<td>2023</td>
|
||||
<td>7.5</td>
|
||||
<td>164</td>
|
||||
<td>喜剧</td>
|
||||
<td>5</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>盗梦空间</td>
|
||||
<td>Christopher Nolan</td>
|
||||
<td>1999</td>
|
||||
<td>9.1</td>
|
||||
<td>98</td>
|
||||
<td>爱情</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>阿甘正传</td>
|
||||
<td>Lasse Hallström</td>
|
||||
<td>2000</td>
|
||||
<td>9.3</td>
|
||||
<td>153</td>
|
||||
<td>动画</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td>泰坦尼克号</td>
|
||||
<td>Rajkumar Hirani</td>
|
||||
<td>2016</td>
|
||||
<td>8.3</td>
|
||||
<td>143</td>
|
||||
<td>剧情</td>
|
||||
<td>3</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td>霸王别姬</td>
|
||||
<td>Christophe Barratier</td>
|
||||
<td>2002</td>
|
||||
<td>7.4</td>
|
||||
<td>149</td>
|
||||
<td>悬疑</td>
|
||||
<td>4</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>10</td>
|
||||
<td>三傻大闹宝莱坞</td>
|
||||
<td>Christopher Nolan</td>
|
||||
<td>2007</td>
|
||||
<td>6.8</td>
|
||||
<td>136</td>
|
||||
<td>科幻</td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
4
q2_1_crawler/movies.json
Normal file
4
q2_1_crawler/movies.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"actors_count": "0",
|
||||
"movies": []
|
||||
}
|
||||
45
q2_1_crawler/q2_2.py
Normal file
45
q2_1_crawler/q2_2.py
Normal file
@@ -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}")
|
||||
Reference in New Issue
Block a user