python爬取豆瓣展开影评
时间: 2025-03-26 08:56:40 浏览: 11
### 使用 Python 抓取豆瓣完整影评内容
为了实现这一目标,需先确保已安装必要的库。具体来说,`requests` 库用于发起 HTTP 请求获取网页内容;而 `BeautifulSoup` 来自 `bs4` 包,则负责解析 HTML 文档以便提取所需的数据[^3]。
下面是一个简单的例子展示如何设置基本的爬虫框架:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/subject/{movie_id}/comments' # 需要替换 {movie_id} 为实际电影 ID
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
response = requests.get(url.format(movie_id='example_movie_id'), headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
else:
print('Failed to retrieve the page.')
```
在此基础上,定位到包含评论的具体标签和类名对于成功抓取至关重要。通常情况下,完整的影评会存储在一个特定结构下的 `<div>` 或者其他类型的 HTML 元素内。通过浏览器开发者工具可以方便地找到这些信息。假设每条评论都包裹在一个具有唯一 class 的 div 中,那么可以通过如下方式进一步处理:
```python
reviews = []
for review_div in soup.find_all('div', {'class': 'review-item'}): # 假设这是存放单条评论的容器
try:
content = review_div.find('span', {'class': 'short'}).get_text(strip=True)
reviews.append(content)
except AttributeError as e:
continue # 如果遇到异常则跳过当前项继续下一个循环
print(reviews[:5]) # 打印前五条评论作为示例输出
```
需要注意的是,在执行上述操作时应当遵循网站的服务条款以及robots.txt文件中的规定,合理控制请求频率以免给服务器造成不必要的负担。此外,由于页面布局可能会随时间变化,因此建议定期更新选择器路径以适应新的结构调整[^2]。
阅读全文
相关推荐


















