三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

用 Python 采集小红书公开数据,xhs 从零上手一篇讲透(附避坑清单)

用 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_notesget_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 过期后频繁手动更换。

四、高手心得:五个实战避坑要点

用过一段时间后,我总结了下面几条高频踩坑经验,强烈建议您提前规避:

  1. Cookie 三字段必须齐全:a1、web_session、webId 缺一不可,缺了会直接签名失败或返回异常数据。
  2. 签名不稳定很正常,重试是标配:官方示例里就内置了 10 次重试逻辑,遇到window._webmsxyw is not a function之类的报错,别慌,加上重试和适当 sleep 就好。
  3. 控制请求频率:批量抓取时建议在循环里加间隔(如每次 1 秒),避免触发 IP 限制。若收到IPBlockError,说明请求过于密集,需要放缓节奏或更换网络环境。
  4. 多账号共用签名服务注意 a1:进阶用法是把 playwright 封装成独立的 Flask 签名服务(见 example/basic_sign_server.py),此时务必保证各账号 Cookie 中的 a1 与签名服务保持一致,否则会持续报签名错误。
  5. 发布功能先在测试号上验证:创建笔记、上传文件这类"写操作"不可逆,正式使用前务必用测试账号完整跑通流程。

五、常见问题 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),仅供参考

← 返回列表