python爬虫爬取豆瓣哪吒影评
时间: 2025-04-19 20:44:01 浏览: 40
### 编写Python爬虫抓取豆瓣电影《哪吒》的影评数据
#### 使用`requests`库发送HTTP请求并获取网页内容
为了访问目标页面,可以使用`requests`库向指定URL发起GET请求。由于豆瓣网站可能对频繁请求有所限制,建议设置合理的headers模拟浏览器行为。
```python
import requests
url = 'https://movie.douban.com/subject/26794435/comments' # 假设这是《哪吒》影片对应的短评链接
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
html_content = response.text
```
#### 解析HTML文档结构提取所需信息
通过分析网页源码得知,《哪吒》影评位于特定div容器内,可借助`lxml`解析器配合XPath表达式精准定位到每条评论节点及其子元素——用户名、评分星级以及正文部分。
```python
from lxml import etree
tree = etree.HTML(html_content)
comments_list = []
for item in tree.xpath('//div[@class="comment-item"]'):
user_name = ''.join(item.xpath('.//span[@class="comment-info"]/a/text()')).strip()
star_rating = len(item.xpath('.//span[contains(@class,"allstar")]/@class')) or None
comment_text = ''.join(item.xpath('.//p[@class=""]/text()')).replace('\n', '').strip()
comments_list.append({
'user': user_name,
'rating': star_rating,
'content': comment_text
})
```
#### 数据存储处理
最后一步就是将收集好的影评保存下来供后续研究分析之用。这里简单地采用JSON文件格式作为输出介质。
```python
import json
with open('nezzar_comments.json', mode='w+', encoding='utf-8') as f:
json.dump(comments_list, fp=f, ensure_ascii=False, indent=4)
print(f"成功导出了{len(comments_list)}条有效评论")
```
以上代码片段展示了如何构建一个基本版的Python爬虫用于采集特定主题下的用户反馈意见[^1]。需要注意的是,在实际开发过程中应当遵循各站点的服务条款,尊重版权方权益,合理合法地运用此类技术手段。
阅读全文
相关推荐













