Python文件操作完全指南
This commit is contained in:
1
260331+2509165020 作业/movies.csv
Normal file
1
260331+2509165020 作业/movies.csv
Normal file
@@ -0,0 +1 @@
|
|||||||
|
排名,中文名,英文名,评分
|
||||||
|
1
260331+2509165020 作业/movies.json
Normal file
1
260331+2509165020 作业/movies.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
10
260331+2509165020 作业/movies.txt
Normal file
10
260331+2509165020 作业/movies.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
肖申克的救赎
|
||||||
|
霸王别姬
|
||||||
|
泰坦尼克号
|
||||||
|
阿甘正传
|
||||||
|
千与千寻
|
||||||
|
美丽人生
|
||||||
|
星际穿越
|
||||||
|
这个杀手不太冷
|
||||||
|
盗梦空间
|
||||||
|
楚门的世界
|
||||||
31
260331+2509165020 作业/test1.py
Normal file
31
260331+2509165020 作业/test1.py
Normal 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}")
|
||||||
27
260331+2509165020 作业/test2.py
Normal file
27
260331+2509165020 作业/test2.py
Normal 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")
|
||||||
33
260331+2509165020 作业/test3.py
Normal file
33
260331+2509165020 作业/test3.py
Normal 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")
|
||||||
Reference in New Issue
Block a user