基于python爬取豆瓣电影信息可视化代码
时间: 2023-09-13 13:05:24 浏览: 133
毕业设计基于Python豆瓣电影数据爬取及可视化源码.zip
5星 · 资源好评率100%
以下是基于 Python 爬取豆瓣电影信息并进行可视化的代码示例:
```python
import requests
import pandas as pd
import matplotlib.pyplot as plt
# 爬取豆瓣电影Top250信息
url = 'https://movie.douban.com/top250'
movies = []
for i in range(10):
res = requests.get(url, params={'start': i * 25, 'filter': ''})
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
for movie in soup.select('.item'):
title = movie.select('.title')[0].text
rating_num = movie.select('.rating_num')[0].text
comment_num = movie.select('.star span')[3].text[:-3]
movies.append({'title': title, 'rating_num': rating_num, 'comment_num': comment_num})
# 将数据存入 DataFrame 中
df = pd.DataFrame(movies)
# 将评分和评论数转换为数字类型
df['rating_num'] = pd.to_numeric(df['rating_num'])
df['comment_num'] = pd.to_numeric(df['comment_num'])
# 对电影进行分类统计
rating_counts = df.groupby(pd.cut(df['rating_num'], bins=[0, 4, 6, 7, 8, 9, 10])).size()
comment_counts = df.groupby(pd.cut(df['comment_num'], bins=[0, 100, 200, 300, 400, 500, 1000, 2000, 5000])).size()
# 绘制评分和评论数的柱状图
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(12, 6))
rating_counts.plot(kind='bar', ax=ax[0])
ax[0].set_xlabel('Rating')
ax[0].set_ylabel('Count')
ax[0].set_title('Rating Counts')
comment_counts.plot(kind='bar', ax=ax[1])
ax[1].set_xlabel('Comment')
ax[1].set_ylabel('Count')
ax[1].set_title('Comment Counts')
plt.tight_layout()
plt.show()
```
在这个示例中,我们使用 Requests 库爬取豆瓣电影 Top250 的信息,并使用 BeautifulSoup 库进行 HTML 解析。然后,我们将电影的标题、评分和评论数存入一个字典列表中,并将其转换为 Pandas 的 DataFrame。接着,我们对评分和评论数进行分类统计,并使用 Matplotlib 库绘制柱状图。最终,我们得到了豆瓣电影 Top250 的评分和评论数的分布情况。
阅读全文