请从知名的电影评论网站豆瓣上面获取排名前列的电影名称、导演和演员、评分、排名、图片等信息:
时间: 2023-07-04 07:29:58 浏览: 162
新建 文本文档.txt
好的,以下是从豆瓣电影排行榜上获取电影信息的步骤和示例代码:
1. 目标网站:https://movie.douban.com/
2. 打开 https://movie.douban.com/chart,这是豆瓣电影排行榜页面,可以看到当前排名前列的电影。
3. 打开开发者工具(在 Chrome 浏览器中按 F12),切换到 Network 选项卡,然后点击页面中的“热门”标签,可以看到浏览器向服务器发送了一个请求,请求地址为 https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20。
4. 点击该请求,在右侧的 Preview 和 Response 标签页中可以看到返回的 JSON 数据。
5. 分析 JSON 数据,找到电影名称、导演和演员、评分、排名及图片等信息所在的键值,并编写 Python 代码解析 JSON 数据。
6. 使用 requests 库向服务器发送请求获取电影图片,使用 Pillow 库将图片保存到本地。
以下是获取电影排行榜信息并保存到 CSV 文件中的 Python 代码示例:
```python
import requests
import csv
# 请求头信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 请求 URL
url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20'
# 发送 GET 请求
response = requests.get(url, headers=headers)
# JSON 数据
data = response.json()
# 保存数据到 CSV 文件
with open('films.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(['电影名', '导演和演员', '评分', '排名', '图片链接'])
for movie in data:
name = movie['title']
actors = ' / '.join(movie['actors'])
score = movie['score']
rank = movie['rank']
image_url = movie['cover_url']
writer.writerow([name, actors, score, rank, image_url])
```
以下是获取电影图片并保存到本地的 Python 代码示例:
```python
import requests
from PIL import Image
# 请求头信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 请求 URL
url = 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.jpg'
# 发送 GET 请求
response = requests.get(url, headers=headers)
# 将图片保存到本地
with open('films_pic/1.jpg', 'wb') as f:
f.write(response.content)
# 打开图片
img = Image.open('films_pic/1.jpg')
img.show()
```
以上代码示例仅供参考,实际应用中需要根据具体情况进行修改和调整。
阅读全文