Python文件操作完全指南

This commit is contained in:
2509165020
2026-03-31 11:29:26 +08:00
parent eb5d1af1e1
commit d8635023a1
6 changed files with 103 additions and 0 deletions

View File

@@ -0,0 +1 @@
排名,中文名,英文名,评分
1 排名 中文名 英文名 评分

View File

@@ -0,0 +1 @@
[]

View File

@@ -0,0 +1,10 @@
肖申克的救赎
霸王别姬
泰坦尼克号
阿甘正传
千与千寻
美丽人生
星际穿越
这个杀手不太冷
盗梦空间
楚门的世界

View File

@@ -0,0 +1,31 @@
import requests
import re
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
}
url = "https://movie.douban.com/top250"
try:
response = requests.get(url=url, headers=headers, timeout=10)
response.raise_for_status()
page_source = response.text
print("页面请求成功!")
except Exception as e:
print(f"请求失败:{e}")
exit()
pattern = re.compile(r'<span class="title">([^&]+?)</span>', re.S)
movie_names = pattern.findall(page_source)
target_names = movie_names[:10]
with open("movies.txt", "w", encoding="utf-8") as f:
for name in target_names:
f.write(name + "\n")
print(f"成功爬取{len(target_names)}部电影名已保存到movies.txt")
print("\n爬取结果预览:")
for i, name in enumerate(target_names, 1):
print(f"{i}. {name}")

View File

@@ -0,0 +1,27 @@
import requests
import re
import csv
url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, headers=headers)
html = resp.text
pattern = re.compile(
r'<em class="">(\d+)</em>.*?'
r'<span class="title">(.*?)</span>.*?'
r'<span class="other">(.*?)</span>.*?'
r'<span class="rating_num">(.*?)</span>',
re.S
)
movies = pattern.findall(html)[:10]
with open("movies.csv", "w", encoding="utf-8-sig", newline="") as f:
w = csv.writer(f)
w.writerow(["排名", "中文名", "英文名", "评分"])
for m in movies:
rank, title, en, rating = m
en = en.replace("/", "").strip()
w.writerow([rank, title, en, rating])
print("已保存到 movies.csv")

View File

@@ -0,0 +1,33 @@
import requests
import re
import json
url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, headers=headers)
html = resp.text
pattern = re.compile(
r'<em class="">(\d+)</em>.*?'
r'<span class="title">(.*?)</span>.*?'
r'<span class="other">(.*?)</span>.*?'
r'<span class="rating_num">(.*?)</span>.*?'
r'<span class="inq">(.*?)</span>?',
re.S
)
movies = pattern.findall(html)[:10]
result = []
for m in movies:
result.append({
"rank": int(m[0]),
"title": m[1],
"en_title": m[2].replace("/", "").strip(),
"rating": m[3],
"quote": m[4] if len(m) > 4 else ""
})
with open("movies.json", "w", encoding="utf-8") as f:
json.dump(result, f, ensure_ascii=False, indent=4)
print("已保存到 movies.json")