使用requests库、beautifuisoup4库爬取豆瓣前250名电影的所有信息,通过openpyxl库存储到excel文件中,并使用workbook,cat以及柱状图将前20名数据呈现。
时间: 2024-02-26 19:56:14 浏览: 145
爬取豆瓣电影Top250中的电影信息以及保存相关的数据信息
好的,我会尽力回答你的问题。首先,我们需要安装需要的库,可以在命令行输入以下指令安装:
```
pip install requests
pip install beautifulsoup4
pip install openpyxl
```
接下来,我们可以编写代码来实现爬取豆瓣前250名电影的所有信息。以下是代码示例:
```python
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
# 请求头,模拟浏览器访问
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 = "https://movie.douban.com/top250"
# 请求参数
params = {
"start": 0,
"filter": ""
}
# 爬取数据
movie_data = []
for i in range(10):
response = requests.get(url, headers=headers, params=params)
soup = BeautifulSoup(response.content, 'html.parser')
movies = soup.find_all('div', attrs={'class': 'info'})
for movie in movies:
title = movie.find('span', attrs={'class': 'title'}).text
rating = movie.find('span', attrs={'class': 'rating_num'}).text
quote = movie.find('span', attrs={'class': 'inq'})
if quote:
quote = quote.text
else:
quote = ''
movie_data.append([title, rating, quote])
params['start'] += 25
# 存储到excel文件中
wb = Workbook()
ws = wb.active
ws.title = '豆瓣前250名电影'
# 写入表头
ws['A1'] = '电影名称'
ws['B1'] = '评分'
ws['C1'] = '简评'
# 写入数据
for row in movie_data:
ws.append(row)
# 添加柱状图
chart = BarChart()
chart.title = '豆瓣前20名电影评分'
chart.y_axis.title = '评分'
chart.x_axis.title = '电影名称'
data = Reference(ws, min_col=2, min_row=1, max_col=2, max_row=20)
cats = Reference(ws, min_col=1, min_row=2, max_row=20)
chart.add_data(data)
chart.set_categories(cats)
ws.add_chart(chart, 'E1')
# 保存文件
wb.save('douban_top250_movies.xlsx')
print('数据已爬取并保存到excel文件中!')
```
代码解释:
1. 首先,我们定义了请求头和请求链接,以及请求参数,其中 `start` 参数表示从第几个开始爬取,每次增加25个,最多爬取前250名。
2. 然后,我们使用循环来爬取每一页的数据,通过 BeautifulSoup 库解析 HTML 页面,并使用 find_all 方法查找所有的电影信息。然后,我们找到电影的名称、评分以及简评,并将其存储到一个列表中。
3. 接下来,我们使用 openpyxl 库创建一个工作簿,并创建一个名为“豆瓣前250名电影”的工作表。然后,我们在表头中写入电影名称、评分和简评,并将数据写入工作表中。
4. 最后,我们使用 openpyxl.chart 库创建一个柱状图,并将其添加到工作表中。我们使用 Reference 方法来指定柱状图的数据源和分类标签,并设置图表的标题和轴标签。最后,我们将柱状图添加到工作表中,并保存文件。
5. 运行代码后,数据将被爬取并保存到名为“douban_top250_movies.xlsx”的 excel 文件中,同时也会显示“数据已爬取并保存到excel文件中!”的提示信息。
希望这个回答能够帮到你。
阅读全文