python爬取豆瓣电影top250并分析
时间: 2025-03-30 11:05:32 浏览: 43
### 数据抓取与分析流程
#### 抓取豆瓣电影Top250数据
为了实现从豆瓣网站上抓取Top250电影的数据,可以采用`requests`库发送HTTP请求以及`BeautifulSoup`解析HTML页面结构。以下是具体方法:
通过向目标URL发起GET请求来获取网页源码,并利用正则表达式或者CSS选择器提取所需字段,比如电影名称、评分、评论数等信息[^1]。
```python
import requests
from bs4 import BeautifulSoup
def fetch_douban_top250():
base_url = 'https://movie.douban.com/top250'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
data_list = []
for start in range(0, 250, 25):
url = f'{base_url}?start={start}'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
items = soup.select('div.item')
for item in items:
title = item.find('span', class_='title').get_text()
rating_num = float(item.find('span', class_='rating_num').get_text())
# 添加更多属性...
data_list.append({'Title': title, 'Rating': rating_num})
return data_list
```
#### 数据存储
收集到的数据通常会保存至CSV文件以便后续处理。Pandas是一个强大的工具包用于操作表格型数据集,在这里我们也可以借助它完成导出工作[^2]。
```python
import pandas as pd
data_frame = pd.DataFrame(fetch_douban_top250())
data_frame.to_csv('douban_top250.csv', index=False, encoding='utf_8_sig')
```
#### 可视化展示
对于所获得的大规模数值资料来说,图表是最直观的表现形式之一。Matplotlib和Seaborn都是优秀的绘图库;另外还可以考虑集成前端交互组件如ECharts来进行动态呈现效果。
```python
import matplotlib.pyplot as plt
grouped_by_year = data_frame.groupby(['ReleaseYear']).size().reset_index(name="Counts")
plt.figure(figsize=(10,6))
ax = grouped_by_year.plot.bar(x='ReleaseYear', y='Counts', rot=70, title="Number of Movies per Year")
ax.set_xlabel("Years")
ax.set_ylabel("Movie Count")
plt.show()
```
以上代码片段仅作为示范用途,请根据实际需求调整逻辑细节。
阅读全文
相关推荐













