From aaba8c49853532abf6ad1bcecf1c0d4acdcb0afe Mon Sep 17 00:00:00 2001 From: 2509165005 <2509165005@student.edu.cn> Date: Tue, 31 Mar 2026 11:32:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BD=9C=E4=B8=9A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2026.3.31..05.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 2026.3.31..05.py diff --git a/2026.3.31..05.py b/2026.3.31..05.py new file mode 100644 index 0000000..ddd6f03 --- /dev/null +++ b/2026.3.31..05.py @@ -0,0 +1,54 @@ + +import re +import csv + + +headers = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' +} +url = 'https://movie.douban.com/top250' + +response = requests.get(url, headers=headers) +html = response.text + +pattern = r'([^<&]+)' +titles = re.findall(pattern, html) + +chinese_titles = [t for t in titles if not t.startswith('/')] + +top10 = chinese_titles[:10] + +rating_pattern = r']*>(\d+\.?\d*)' + +ratings = re.findall(rating_pattern, html) + +movies = [] +for i in range(min(10, len(titles))): + title = titles[i] if not titles[i].startswith('/') else '' + en_title = titles[i+1] if i+1 < len(titles) and titles[i+1].startswith('/') else '' + en_title = en_title.replace('/ ', '') if en_title else '' + + movie = { + 'rank': i + 1, + 'title': title, + 'en_title': en_title, + 'rating': ratings[i] if i < len(ratings) else '' + } + movies.append(movie) + +with open('movies.csv', 'w', encoding='utf-8', newline='') as f: + writer = csv.DictWriter(f, fieldnames=['rank', 'title', 'en_title', 'rating']) + writer.writeheader() + writer.writerows(movies) + +print('已保存到 movies.csv') + +with open('movies.csv', 'r', encoding='utf-8') as f: + for line in f: + print(line.strip()) + +chinese_titles = [t for t in titles if not t.startswith('/')] + +print('电影名称(前10部):') +for i, title in enumerate(chinese_titles[:10], 1): + print(f'{i}. {title}') \ No newline at end of file