在2026年的社交媒体营销浪潮中,小红书作为国内领先的生活方式分享平台,其公开笔记数据成为品牌分析、竞品监控及内容优化的重要资源。然而,随着平台反爬机制的持续升级,如何高效、合规地采集小红书数据成为技术挑战。本文将详细介绍一款适配2026新版页面的合规小红书爬虫工具——xhs,从环境搭建到数据采集全流程解析,助您轻松掌握公开笔记采集技巧。
一、环境搭建:Python 3.8+与xhs库安装
1. Python环境准备
建议使用Python 3.8或更高版本,以确保兼容性与性能优化。可通过Anaconda或官方安装包快速配置环境。
2. xhs库安装
xhs是一款专为小红书设计的Python爬虫库,通过封装Web端API接口,实现智能签名验证与模拟浏览器行为,降低封禁风险。安装方式如下:
```bash
pip install xhs PyPI安装
或从源码安装最新功能
git clone https://gitcode.com/gh_mirrors/xh/xhs
cd xhs && python setup.py install
```
二、核心配置:Cookie获取与初始化
1. Cookie获取
登录小红书网页版,按F12打开开发者工具,在“Application”或“Storage”选项卡中复制以下关键字段:
- `a1`:用户身份标识
- `web_session`:会话状态信息
- `webId`:设备唯一标识
2. 客户端初始化
创建Python脚本,初始化xhs客户端并传入Cookie:
```python
from xhs import XhsClient
client = XhsClient(
cookie="a1=xxx; web_session=xxx; webId=xxx" 替换为实际Cookie
)
```
三、数据采集:从搜索到详情的全流程
1. 智能搜索功能
支持按关键词、热度、时间等多维度筛选笔记:
```python
按热度排序搜索“美妆教程”
hot_notes = client.search_note(
keyword="美妆教程",
sort_type="hot", 热度排序
page=1,
page_size=15
)
按时间排序搜索“旅行攻略”
new_notes = client.search_note(
keyword="旅行攻略",
sort_type="time", 时间排序
page=1,
page_size=15
)
```
2. 笔记详情抓取
获取单篇笔记的完整信息,包括图片、视频、评论及互动数据:
```python
note_detail = client.get_note_by_id(
note_id="笔记ID", 替换为实际笔记ID
xsec_token="安全令牌" 部分接口需传入
)
提取笔记中的图片链接
from xhs import help
image_urls = help.get_imgs_url_from_note(note_detail)
```
3. 用户数据分析
获取指定用户的详细信息及发布内容,支持分页采集:
```python
获取用户基本信息
user_info = client.get_user_info(user_id="用户ID")
获取用户发布的笔记(分页)
user_notes = client.get_user_notes(
user_id="用户ID",
page=1,
page_size=20
)
```
四、高级应用:批量采集与错误处理
1. 批量采集用户笔记
通过循环实现多页笔记采集,结合异常处理确保稳定性:
```python
def collect_user_all_notes(user_id, max_pages=10):
all_notes = [
for page in range(1, max_pages + 1):
try:
notes = client.get_user_notes(user_id, page=page)
if not notes:
break
all_notes.extend(notes)
print(f"已采集第{page}页,共{len(notes)}条笔记")
except Exception as e:
print(f"第{page}页采集失败:{e}")
break
return all_notes
```
2. 智能错误处理机制
针对IP封禁、数据获取失败等场景,实现重试与延迟策略:
```python
import time
import random
from xhs.exception import DataFetchError, IPBlockError
def safe_api_call(api_func, max_retries=3):
for attempt in range(max_retries):
try:
return api_func()
except DataFetchError as e:
print(f"数据获取失败:{e}")
if attempt < max_retries - 1:
wait_time = random.uniform(2, 5)
print(f"等待{wait_time:.1f}秒后重试...")
time.sleep(wait_time)
except IPBlockError:
print("IP可能被限制,请稍后再试")
break
return None
```
五、数据存储与可视化
1. 数据存储方案
建议使用Pandas库将采集数据保存为CSV或Excel格式,便于后续分析:
```python
import pandas as pd
将笔记详情转换为DataFrame
notes_df = pd.DataFrame([{
"标题": note.get("title", ""),
"点赞数": note.get("interactInfo", {}).get("likedCount", 0),
"评论数": note.get("interactInfo", {}).get("commentCount", 0),
"图片链接": ", ".join(image_urls)
} for note in hot_notes])
保存为Excel文件
notes_df.to_excel("小红书笔记数据.xlsx", index=False)
```
2. 可视化分析
通过Matplotlib或Pyecharts生成互动趋势图、用户画像等可视化图表,辅助决策。
六、合规与反爬应对
1. 合规性声明
xhs工具仅用于获取公开数据,请遵守小红书《用户服务协议》及《隐私政策》,尊重用户隐私,避免商业侵权。
2. 反爬机制应对
- 动态签名验证:xhs内置智能签名服务,自动处理x-s和x-t参数,避免手动构造签名失败。
- 浏览器指纹检测:模拟真实浏览器行为,降低被封禁风险。
- IP频率限制:建议使用代理IP池,控制请求频率(如≥3秒/次)。
结语
2026年的小红书数据采集已从“技术攻坚”转向“效率与合规并重”。通过xhs工具,开发者可快速实现从搜索到详情的全流程数据采集,结合智能错误处理与合规策略,为品牌营销、竞品分析提供有力支持。立即访问xhs官方文档,获取更多高级功能与定制化服务!