爬虫爬取豆瓣电影评论保存Excel
时间: 2025-07-08 12:36:15 浏览: 0
### 爬取豆瓣电影评论并存储到Excel文件中的方法
要实现爬取豆瓣电影评论并将数据保存到Excel文件中,可以按照以下方式完成。以下是完整的解决方案,包括代码示例和相关说明。
#### 1. 准备工作
首先需要导入必要的库以支持请求网页、解析HTML以及处理Excel文件的功能。
```python
import requests
from bs4 import BeautifulSoup
import openpyxl
```
这些库分别用于发送网络请求[^1]、解析HTML文档[^5]以及创建和操作Excel文件[^1]。
#### 2. 获取影评数据
通过指定电影ID,调用函数获取影评列表。以下是一个示例函数`get_reviews()`,用于抓取特定电影的评论:
```python
def get_reviews(movie_id, page_limit=10):
reviews = []
base_url = f"https://movie.douban.com/subject/{movie_id}/comments"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
for page in range(page_limit):
url = f"{base_url}?start={page * 20}&limit=20&sort=new_score&status=P"
response = requests.get(url, headers=headers)
if response.status_code != 200:
continue
soup = BeautifulSoup(response.text, 'lxml')
comment_items = soup.find_all("div", class_="comment")
for item in comment_items:
review = {}
review['username'] = item.find("span", class_="comment-info").a.string
review['content'] = item.find("span", class_="short").string
review['rating'] = len(item.find_all("span", class_="rating"))
reviews.append(review)
return reviews
```
此函数通过循环分页获取影评,并提取用户名、评论内容及评分等信息[^2]。
#### 3. 存储数据到Excel
将获取到的影评数据保存到Excel文件中,可以使用`openpyxl`库来实现:
```python
def save_to_excel(reviews, filename="reviews.xlsx"):
wb = openpyxl.Workbook()
ws = wb.active
ws.append(["用户名", "评论内容", "评分"])
for review in reviews:
ws.append([review['username'], review['content'], review['rating']])
wb.save(filename)
```
该函数定义了Excel表格的列标题,并逐行写入每条评论的数据[^3]。
#### 4. 主程序逻辑
将上述功能整合到主程序中,确保流程清晰且易于扩展:
```python
if __name__ == "__main__":
movie_id = "1292052" # 示例电影ID,可以根据需求更改
reviews = get_reviews(movie_id)
save_to_excel(reviews)
print("影评已成功保存到Excel文件中。")
```
#### 注意事项
- 在实际运行过程中,可能需要调整请求头或增加延时以避免触发反爬机制[^4]。
- 如果需要处理更复杂的页面结构或动态加载的内容,可以考虑使用Selenium等工具[^5]。
###
阅读全文
相关推荐

















