帮我写一段用python爬取电影数据代码,并进行可视化分析
时间: 2023-06-08 09:07:58 浏览: 150
好的,下面是一段用Python爬取电影数据并进行可视化分析的示例代码:
```
# 导入所需库
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
# 定义要爬取的电影类型和页数
movie_type = '喜剧'
page_num = 5
# 定义存储数据的列表
movie_list = []
# 循环爬取每一页数据
for i in range(1, page_num+1):
url = f'https://movie.douban.com/tag/{movie_type}?start={i*20}&type=T'
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'}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
items = soup.find_all(class_='item')
for item in items:
name = item.find(class_='title').text.strip()
score = item.find(class_='rating_num').text.strip()
movie_list.append({'name': name, 'score': score})
# 将数据列表转换成DataFrame对象
df = pd.DataFrame(movie_list)
# 绘制电影评分分布直方图
plt.hist(df['score'], bins=10, alpha=0.5, color='blue')
plt.xlabel('电影评分')
plt.ylabel('数量')
plt.title(f'{movie_type}电影评分分布')
plt.show()
```
以上代码的功能是爬取豆瓣电影中指定类型的电影数据,并绘制电影评分分布直方图。具体操作步骤如下:
1. 定义要爬取的电影类型和爬取的页数。
2. 循环爬取每一页的电影数据,使用requests库发送HTTP请求并用BeautifulSoup库解析HTML页面,从中提取出电影名字和评分并存储到一个列表中。
3. 将存储电影数据的列表转换成DataFrame对象。
4. 使用matplotlib库绘制电影评分分布直方图,并显示出来。
请注意,并不是所有网站都允许爬虫程序进行数据爬取。在写爬虫程序前,请务必确认目标网站是否允许进行数据爬取,并且遵守相关的爬虫规则。
阅读全文