用 Python 采集小红书公开数据,xhs 从零上手一篇讲透(附避坑清单)
用 Python 采集小红书公开数据,xhs 从零上手一篇讲透(附避坑清单)
【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs
打开小红书网页版,一条条复制笔记标题、点赞数、评论区内容,再手动粘进 Excel……如果您正在做竞品分析、选题调研或内容监控,多半经历过这种"人肉爬虫"的煎熬。数据量一旦过百,这种手工方式基本就不可用了。
好消息是,开源项目xhs已经帮您把小红书 Web 端的请求封装好了。它是一个轻量级的 Python 工具库,只需传入登录后的 Cookie,就能稳定地获取笔记详情、用户主页、完整评论等公开数据,甚至还能直接发笔记、点赞、关注。本文就用最省事的方式,带您一步步跑起来。
一、最快跑通:三行代码看到第一份数据
先别管复杂的原理,让工具先"出声"。xhs 对 Python 版本要求不高(3.7 及以上即可),安装非常简单:
pip install xhs不过有一点必须提前说明:小红书接口有签名(x-s)校验,单靠这个库本身还不能直接调用,需要配合浏览器模拟工具生成签名。推荐您按顺序完成下面几步环境准备:
pip install playwright playwright install再下载一份 stealth.min.js(反爬绕过脚本)放到本地,供签名时使用。之后在代码里构造XhsClient,并传入从浏览器复制出来的 Cookie,就能开始调用了:
from xhs import XhsClient client = XhsClient(cookie="您的cookie", sign=sign) note = client.get_note_by_id("笔记ID", "笔记的xsec_token") print(note["title"], note["interact_info"])看到控制台打印出笔记标题和互动数据的那一刻,您就正式上手了。
二、能力全景:这个库到底能干什么
xhs 的能力可以按"功能维度"分成六大块,下面逐层拆解,方便您按需取用。
1. 笔记数据:从单条到批量
单条笔记的核心信息(标题、正文、话题、@用户、点赞/收藏/评论/转发数)可以通过get_note_by_id一行拿到。如果您想整理某个账号的全部笔记,get_user_all_notes会分页拉取并自动组装成结构化的 Note 对象,连图片 URL、视频地址都替您解析好了。
更贴心的是,save_files_from_note_id可以直接把一篇笔记的图片或视频批量下载到本地文件夹,按笔记标题自动建目录,做素材收集时非常省事。
2. 用户画像:主页与行为数据
想知道一个博主的粉丝量、简介、主页内容?get_user_info获取用户公开资料,get_user_notes拉取对方发布过的笔记列表,get_user_collect_notes和get_user_like_notes还能看到对方公开的收藏与点赞内容——这对于分析竞品账号的内容偏好极有价值。
3. 评论体系:还原真实互动
评论是判断内容质量的黄金数据。get_note_all_comments会递归抓取一篇笔记下的所有评论及其子评论,自动处理翻页游标,最终返回一个扁平化的评论列表,方便后续做情感分析或舆情统计。
4. 搜索与信息流:发现热门内容
get_note_by_keyword支持关键词搜索,还能按"综合/最热/最新"排序、按图文/视频过滤;get_home_feed则能抓取推荐、穿搭、美食、旅行等十余个分类的信息流。想做选题调研时,这两个接口是主力。
5. 互动操作:点赞、收藏、评论、关注
除了"读",xhs 也封装了"写"的能力:点赞/取消点赞、收藏/取消收藏、评论/删除评论、关注/取关,一一对应一个方法。做自动化运营脚本时,这些接口可以组合出完整的行为闭环。
6. 发布能力:图文与视频笔记
进阶用户还能直接调用发布接口:create_image_note上传本地图片发布图文笔记,create_video_note支持视频分片上传并自动截取首帧做封面,甚至支持定时发布和私密发布。相关演示在 example/login_qrcode_from_creator.py 等示例中都有体现。
三、登录方案:三种方式按需选择
绝大多数接口都需要登录态,xhs 提供了三种登录路径:
- Cookie 直传:从浏览器复制 Cookie 直接传给客户端,最快捷,适合快速测试;
- 扫码登录:通过
get_qrcode生成二维码,手机扫码后轮询状态,适合不想手动复制 Cookie 的场景,可参考 example/login_qrcode.py; - 手机号登录:短信验证码方式登录,示例见 example/login_phone.py。
建议日常脚本优先用扫码或手机号登录,避免 Cookie 过期后频繁手动更换。
四、高手心得:五个实战避坑要点
用过一段时间后,我总结了下面几条高频踩坑经验,强烈建议您提前规避:
- Cookie 三字段必须齐全:a1、web_session、webId 缺一不可,缺了会直接签名失败或返回异常数据。
- 签名不稳定很正常,重试是标配:官方示例里就内置了 10 次重试逻辑,遇到
window._webmsxyw is not a function之类的报错,别慌,加上重试和适当 sleep 就好。 - 控制请求频率:批量抓取时建议在循环里加间隔(如每次 1 秒),避免触发 IP 限制。若收到
IPBlockError,说明请求过于密集,需要放缓节奏或更换网络环境。 - 多账号共用签名服务注意 a1:进阶用法是把 playwright 封装成独立的 Flask 签名服务(见 example/basic_sign_server.py),此时务必保证各账号 Cookie 中的 a1 与签名服务保持一致,否则会持续报签名错误。
- 发布功能先在测试号上验证:创建笔记、上传文件这类"写操作"不可逆,正式使用前务必用测试账号完整跑通流程。
五、常见问题 FAQ
Q:获取笔记时要求传 xsec_token,这个参数去哪找?A:在小红书网页版打开目标笔记,浏览器地址栏里 URL 上的xsec_token参数就是,直接复制传入即可。
Q:xhs 和那些付费采集软件相比有什么优势?A:免费、开源、可二次开发,接口能力透明可控;缺点是需要自己处理签名与反爬,有一定上手门槛。
Q:爬取的数据能商用吗?A:请务必遵守平台规则与法律法规。建议只采集公开数据、控制请求频率,且不用于侵犯他人权益的用途。本项目的初心也是技术学习与个人研究。
Q:想深入了解接口细节怎么办?A:推荐阅读项目自带的文档:docs/crawl.rst 覆盖主页爬取的各类接口,docs/basic.rst 讲签名与基础用法,docs/creator.rst 说明发布功能;核心源码集中在 xhs/core.py,方法命名清晰、注释完整,直接读代码也是一种高效学习方式。
Q:想体验最新功能或二次开发,如何安装?A:可以克隆源码仓库安装:
git clone https://gitcode.com/gh_mirrors/xh/xhs cd xhs python setup.py install六、下一步:让数据驱动您的决策
从复制粘贴到自动化采集,xhs 帮您省下的不只是时间,更是一种"数据随手可得"的能力。无论您是要做电商口碑监控、竞品账号跟踪,还是内容选题分析,这套工具都能成为您稳定可靠的数据底座。
建议的进阶路线是:先用示例脚本跑通单条数据,再逐步组合成批量采集任务,最后加上定时调度,形成自己的数据看板。现在就动手安装试试吧,让第一行数据输出成为您效率提升的起点。
【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考