优化上面爬取豆瓣电影信息的代码,使其可以可视化展示
时间: 2023-08-11 20:18:21 浏览: 136
好的,我们可以考虑将爬取的电影信息存储到 Pandas 的 DataFrame 中,并使用 Matplotlib 进行可视化展示。
以下是优化后的代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
# 定义爬取电影信息的函数
def scrape_movie_info(url):
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
items = soup.find_all('div', {'class': 'item'})
# 创建空的 DataFrame
df = pd.DataFrame(columns=['title', 'rating', 'comment'])
# 遍历每个电影条目,并提取信息
for item in items:
title = item.find('span', {'class': 'title'}).text
rating = item.find('span', {'class': 'rating_num'}).text
comment = item.find('span', {'class': 'inq'}).text if item.find('span', {'class': 'inq'}) else ''
# 将电影信息添加到 DataFrame 中
df = df.append({'title': title, 'rating': rating, 'comment': comment}, ignore_index=True)
return df
# 定义函数 plot_rating_distribution
def plot_rating_distribution(df, title='Rating Distribution'):
# 统计每个评分的电影数量
rating_counts = df['rating'].value_counts()
# 创建柱状图
plt.bar(rating_counts.index.astype(float), rating_counts.values)
plt.title(title)
plt.xlabel('Rating')
plt.ylabel('Count')
plt.show()
# 爬取豆瓣电影 Top250 的信息
url = 'https://movie.douban.com/top250'
df = scrape_movie_info(url)
# 可视化电影评分分布
plot_rating_distribution(df)
```
在这个示例中,我们首先定义了函数 `scrape_movie_info`,用于爬取豆瓣电影 Top250 的信息,并将结果存储到 Pandas 的 DataFrame 中。接着,我们定义了函数 `plot_rating_distribution`,用于统计每个评分的电影数量,并使用 Matplotlib 创建柱状图进行可视化展示。最后,我们调用这两个函数,实现了豆瓣电影评分分布的可视化展示。