python爬取豆瓣电影top250并保存为xlsx_其中包括电影名称,评分,地区,评价数,时间
时间: 2024-06-08 16:09:30 浏览: 128
好的,让我们来看一下具体的实现方法。
首先,我们需要安装一些必要的库,包括 requests、beautifulsoup4 和 openpyxl。你可以通过在终端中运行以下命令来安装它们:
```
pip install requests
pip install beautifulsoup4
pip install openpyxl
```
接下来,我们可以编写爬取数据并保存为Excel文件的 Python 代码。以下是完整的代码及注释:
``` python
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
# 创建工作簿
wb = Workbook()
# 创建工作表
ws = wb.active
# 设置表头
ws.append(['电影名称', '评分', '地区', '评价数', '时间'])
# 循环爬取每一页数据
for i in range(10):
url = f'https://movie.douban.com/top250?start={i * 25}&filter='
# 发送 GET 请求
res = requests.get(url)
# 解析 HTML
soup = BeautifulSoup(res.text, 'html.parser')
# 获取电影列表
movie_list = soup.find('ol', class_='grid_view').find_all('li')
# 循环处理每一部电影
for movie in movie_list:
# 获取电影名称
name = movie.find('span', class_='title').text
# 获取评分
rating = movie.find('span', class_='rating_num').text
# 获取地区和时间
info = movie.find('div', class_='bd').find('p').text.split('\n')[1].strip().split('/')
# 地区
region = info[0]
# 时间
year = info[-2].strip()
# 获取评价数
comments = movie.find('div', class_='star').find_all('span')[-1].text[:-3]
# 将数据写入工作表
ws.append([name, rating, region, comments, year])
# 保存工作簿
wb.save('douban_movies.xlsx')
```
在这段代码中,我们首先创建了一个名为 `wb` 的新工作簿,然后创建了一个名为 `ws` 的新工作表。接下来,我们设置了工作表的表头,包括电影名称、评分、地区、评价数和时间。
然后,我们循环遍历了前 10 页豆瓣电影 Top 250 页面(每页有 25 部电影),并使用 requests 库发送 GET 请求。然后,我们使用 BeautifulSoup 库解析 HTML 并获取电影列表。接下来,我们循环处理每一部电影,获取电影名称、评分、地区、评价数和时间,并将它们写入工作表中。
最后,我们使用 `wb.save()` 方法将工作簿保存为 Excel 文件。你可以将文件名修改为自己喜欢的名称,然后运行代码即可。
阅读全文