python 小红书关键词爬虫
时间: 2025-06-16 15:24:31 浏览: 12
### 小红书关键词爬虫实现教程及示例代码
以下是一个基于 Python 的小红书关键词爬虫的实现教程和代码示例。该教程结合了项目 `xhs_simple_crawler` 的目录结构[^1]以及作者吴秋霖在爬虫领域的经验[^2]。
#### 1. 环境准备
确保已安装以下依赖库:
- `requests`: 用于发送 HTTP 请求。
- `pandas`: 数据处理与存储。
- `selenium`: 模拟浏览器行为,适用于动态加载内容。
- `json`: 解析 JSON 格式数据。
可以通过以下命令安装所需依赖:
```bash
pip install requests pandas selenium
```
#### 2. 代码实现
以下是一个简单的 Python 小红书关键词爬虫示例:
```python
import requests
import json
import pandas as pd
# 配置请求头
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',
'Cookie': '填写你的Cookie' # 替换为实际的小红书登录Cookie
}
# 定义搜索接口URL
search_url = "https://www.xiaohongshu.com/web_api/sns/v1/search_notes"
# 定义参数
params = {
'keyword': '关键词', # 替换为你要搜索的关键词
'page': 1,
'page_size': 20
}
# 发送请求
response = requests.get(search_url, headers=headers, params=params)
data = response.json()
# 解析数据
if data['success']:
notes = data['data']['notes']
result = []
for note in notes:
note_data = {
'id': note['id'],
'title': note['title'],
'desc': note['desc'],
'user_name': note['user']['nickname'],
'like_count': note['interact_info']['like_count'],
'comment_count': note['interact_info']['comment_count']
}
result.append(note_data)
# 转换为DataFrame并保存为CSV文件
df = pd.DataFrame(result)
df.to_csv('xhs_search_results.csv', index=False, encoding='utf-8-sig')
print("数据已保存到 xhs_search_results.csv")
else:
print("请求失败:", data['msg'])
```
#### 3. 注意事项
- **Cookie**: 在实际使用中,需要替换 `headers` 中的 `Cookie` 字段为真实的登录态 Cookie。可以通过浏览器开发者工具获取。
- **反爬机制**: 小红书存在较为严格的反爬机制,可能需要对请求进行加密签名或使用 Selenium 模拟浏览器行为。
- **合法性**: 使用爬虫时,请遵守目标网站的《用户协议》和相关法律法规[^2]。
#### 4. 日志记录
参考 `xhs_simple_crawler` 项目中的 `log.txt` 文件[^1],可以使用 Python 的 `logging` 模块记录爬虫运行日志,便于排查问题。
```python
import logging
logging.basicConfig(filename='log.txt', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
try:
# 爬虫逻辑
logging.info("开始爬取数据")
except Exception as e:
logging.error(f"发生错误: {e}")
```
---
###
阅读全文
相关推荐

















