编写一个Python程序,爬取豆瓣电影"肖申克的救赎"的所有评论。 将爬取的评论数据保存到CSV文件中。
时间: 2024-10-08 08:10:52 浏览: 41
要编写一个Python程序爬取豆瓣电影《肖申克的救赎》的所有评论并将数据保存到CSV文件中,你需要使用一些网络抓取库,如`requests`和`BeautifulSoup`。这里是一个基本的步骤说明:
1. **安装所需库**:
首先确保已经安装了 `requests`, `beautifulsoup4`, 和 `pandas`,如果没有,可以使用下面的命令安装:
```bash
pip install requests beautifulsoup4 pandas
```
2. **获取网页内容**:
使用`requests.get`请求豆瓣电影页面,并解析HTML内容。
```python
import requests
from bs4 import BeautifulSoup
url = "https://movie.douban.com/subject/1292052/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
```
3. **定位评论区域**:
找到评论列表的HTML元素,这通常在一个类似于`.commentlist`或`.comments`的class里。
```python
comments_container = soup.find('div', {'class': 'commentlist'})
```
4. **解析评论**:
遍历每个评论,提取关键信息如用户昵称、评分和评论内容。
```python
comment_elements = comments_container.find_all('li', {'class': 'comment-item'})
comments_data = []
for element in comment_elements:
username = element.find('span', {'class': 'comment-info'}).text.strip()
rating = element.find('span', {'class': 'rating_nums'}).text
content = element.find('div', {'class': 'short'}).text.strip()
comments_data.append((username, rating, content))
```
5. **保存到CSV**:
最后,使用`pandas`将数据保存到CSV文件。
```python
import pandas as pd
df_comments = pd.DataFrame(comments_data, columns=['用户名', '评分', '评论'])
df_comments.to_csv('肖申克的救赎评论.csv', index=False)
```
注意:网络抓取需遵守网站的robots.txt协议,尊重版权,不要频繁请求以免对服务器造成压力。实际操作时,可能需要登录豆瓣或其他网站才能访问某些数据,也可能有反爬虫策略,所以结果可能会因具体情况而异。
阅读全文