From 6a2a5a5cb1d1eee3c0e3a7a315efa25b81ec8f45 Mon Sep 17 00:00:00 2001 From: 2509165028 <2509165028@student.edu.cn> Date: Thu, 2 Apr 2026 16:05:41 +0800 Subject: [PATCH] 2-4 --- 260402_2509165028.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 260402_2509165028.py diff --git a/260402_2509165028.py b/260402_2509165028.py new file mode 100644 index 0000000..75a2a75 --- /dev/null +++ b/260402_2509165028.py @@ -0,0 +1,30 @@ +import requests +import re + +url = 'https://www.douban.com/doulist/3936288/' +headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'} +response = requests.get(url, headers=headers) +response.encoding = 'utf-8' +html = response.text + +# 1. 提取电影名 +title_pattern = r'
([^<]+)
' +titles = re.findall(title_pattern, html) +chinese_titles = [t for t in titles if not t.startswith('/')] + +# 2. 提取评分 +rating_pattern = r'([^<]+)' +ratings = re.findall(rating_pattern, html) + +# 3. 提取经典台词 +quote_pattern = r'([^<]+)' +quotes = re.findall(quote_pattern, html) + +# 合并打印(前10部) +print(f'{"排名":<4} {"电影名":<20} {"评分":<6} {"引言"}') +print('-' * 70) +for i in range(min(10, len(chinese_titles))): + title = chinese_titles[i] + rating = ratings[i] if i < len(ratings) else '无' + quote = f'"{quotes[i]}"' if i < len(quotes) else '无' + print(f'{i+1:<4} {title:<20} {rating:<6} {quote}')