diff --git a/q2_1_crawler/1.py b/q2_1_crawler/1.py
new file mode 100644
index 0000000..f319e96
--- /dev/null
+++ b/q2_1_crawler/1.py
@@ -0,0 +1,30 @@
+import re
+import requests
+from bs4 import BeautifulSoup as bs
+import json
+header = {'User-Agent':'Mozilla/5.0'}
+url = 'https://exam.detr.top/exam-b/movies'
+
+html = requests.get(url, headers=header).text
+# print(html)
+open('movies.html','w',encoding='utf-8').write(html)
+# print(html)
+# print('==============')
+# fd = bs(html, 'html.parser').find('p', class_='meta')
+fd = re.search(r'exam_fingerprint:\s*(\S+)',html).group(1)
+# print(fd)
+
+resp = bs(html, 'html.parser').find_all('tr', class_='item-row')
+
+# print(resp)
+movies = []
+
+for i in resp:
+ c = []
+ for r in i.find_all('td'):
+ c.append(r.text.strip())
+ movies.append({
+ 'id':int(c[0]), 'title':c[1], 'director':c[2], 'year':int(c[3]), 'rating':float(c[4]), 'duration':int(c[5]), 'genre':c[6], 'actors_count':int(c[7])
+ })
+
+json.dump({'ID':fd, 'movies':movies}, open('movies.json', 'w', encoding='utf-8'), ensure_ascii=False, indent=2)
diff --git a/q2_1_crawler/movies.html b/q2_1_crawler/movies.html
new file mode 100644
index 0000000..3d89eeb
--- /dev/null
+++ b/q2_1_crawler/movies.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+ 电影列表
+
+
+
+ 电影列表
+ 数据编号:B-20260625-3464
+
+
+
+
+ | 编号 |
+ 电影名 |
+ 导演 |
+ 上映年份 |
+ 评分 |
+ 时长(分钟) |
+ 类型 |
+ 主演数 |
+
+
+
+
+
+ | 1 |
+ 霸王别姬 |
+ Frank Darabont |
+ 2004 |
+ 6.8 |
+ 179 |
+ 科幻 |
+ 3 |
+
+
+
+ | 2 |
+ 放牛班的春天 |
+ 陈凯歌 |
+ 2019 |
+ 6.7 |
+ 117 |
+ 喜剧 |
+ 5 |
+
+
+
+ | 3 |
+ 泰坦尼克号 |
+ Robert Zemeckis |
+ 2015 |
+ 9.1 |
+ 177 |
+ 爱情 |
+ 4 |
+
+
+
+ | 4 |
+ 三傻大闹宝莱坞 |
+ James Cameron |
+ 2024 |
+ 7.6 |
+ 117 |
+ 冒险 |
+ 5 |
+
+
+
+ | 5 |
+ 阿甘正传 |
+ 宫崎骏 |
+ 2016 |
+ 8.0 |
+ 146 |
+ 喜剧 |
+ 3 |
+
+
+
+ | 6 |
+ 星际穿越 |
+ Christopher Nolan |
+ 2010 |
+ 9.2 |
+ 168 |
+ 爱情 |
+ 2 |
+
+
+
+ | 7 |
+ 忠犬八公的故事 |
+ Lasse Hallström |
+ 2016 |
+ 9.3 |
+ 106 |
+ 悬疑 |
+ 5 |
+
+
+
+ | 8 |
+ 肖申克的救赎 |
+ Rajkumar Hirani |
+ 2018 |
+ 7.3 |
+ 107 |
+ 剧情 |
+ 4 |
+
+
+
+ | 9 |
+ 千与千寻 |
+ Christophe Barratier |
+ 2019 |
+ 7.3 |
+ 118 |
+ 动画 |
+ 4 |
+
+
+
+ | 10 |
+ 盗梦空间 |
+ Christopher Nolan |
+ 2008 |
+ 9.3 |
+ 111 |
+ 动画 |
+ 5 |
+
+
+
+
+
+
\ 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..20ba5dc
--- /dev/null
+++ b/q2_1_crawler/movies.json
@@ -0,0 +1,105 @@
+{
+ "ID": "B-20260625-3464",
+ "movies": [
+ {
+ "id": 1,
+ "title": "霸王别姬",
+ "director": "Frank Darabont",
+ "year": 2004,
+ "rating": 6.8,
+ "duration": 179,
+ "genre": "科幻",
+ "actors_count": 3
+ },
+ {
+ "id": 2,
+ "title": "放牛班的春天",
+ "director": "陈凯歌",
+ "year": 2019,
+ "rating": 6.7,
+ "duration": 117,
+ "genre": "喜剧",
+ "actors_count": 5
+ },
+ {
+ "id": 3,
+ "title": "泰坦尼克号",
+ "director": "Robert Zemeckis",
+ "year": 2015,
+ "rating": 9.1,
+ "duration": 177,
+ "genre": "爱情",
+ "actors_count": 4
+ },
+ {
+ "id": 4,
+ "title": "三傻大闹宝莱坞",
+ "director": "James Cameron",
+ "year": 2024,
+ "rating": 7.6,
+ "duration": 117,
+ "genre": "冒险",
+ "actors_count": 5
+ },
+ {
+ "id": 5,
+ "title": "阿甘正传",
+ "director": "宫崎骏",
+ "year": 2016,
+ "rating": 8.0,
+ "duration": 146,
+ "genre": "喜剧",
+ "actors_count": 3
+ },
+ {
+ "id": 6,
+ "title": "星际穿越",
+ "director": "Christopher Nolan",
+ "year": 2010,
+ "rating": 9.2,
+ "duration": 168,
+ "genre": "爱情",
+ "actors_count": 2
+ },
+ {
+ "id": 7,
+ "title": "忠犬八公的故事",
+ "director": "Lasse Hallström",
+ "year": 2016,
+ "rating": 9.3,
+ "duration": 106,
+ "genre": "悬疑",
+ "actors_count": 5
+ },
+ {
+ "id": 8,
+ "title": "肖申克的救赎",
+ "director": "Rajkumar Hirani",
+ "year": 2018,
+ "rating": 7.3,
+ "duration": 107,
+ "genre": "剧情",
+ "actors_count": 4
+ },
+ {
+ "id": 9,
+ "title": "千与千寻",
+ "director": "Christophe Barratier",
+ "year": 2019,
+ "rating": 7.3,
+ "duration": 118,
+ "genre": "动画",
+ "actors_count": 4
+ },
+ {
+ "id": 10,
+ "title": "盗梦空间",
+ "director": "Christopher Nolan",
+ "year": 2008,
+ "rating": 9.3,
+ "duration": 111,
+ "genre": "动画",
+ "actors_count": 5
+ }
+ ]
+}
\ No newline at end of file