小红书数据采集工具 xhs:从复制粘贴到一键取数,只差这一条命令
小红书数据采集工具 xhs:从复制粘贴到一键取数,只差这一条命令
【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs
xhs是一款基于小红书 Web 端请求封装的开源 Python 库,专治"想分析数据却拿不到结构化结果"的尴尬:笔记详情、用户资料、评论层级,一条命令就能落成 Python 字典。这篇指南不背功能清单,我们从你真实遇到的痛处讲起,再带你三分钟跑通第一条数据获取命令。
为了抓一条数据,你愿意花几小时?
回想一下你上一次想做小红书内容分析:打开网页版,翻到某条爆款笔记,手动复制标题、数点赞、抄评论。一条还好,十条开始烦躁,一百条直接劝退——而你需要的数据,往往是一千条起。
更要命的是,复制下来的只是碎片:点赞数、评论数、发布时间散落在页面不同位置,拼进 Excel 又是一场噩梦。你缺的不是数据,是一条能把网页变成结构化 JSON 的通道。
更别提那些更隐蔽的诉求:想监控竞品账号更新、想统计某关键词下所有笔记的互动分布、想把评论区按热度排个序……靠人工?时间不允许。
它的答案:一行代码换一整页笔记
小红书数据采集工具 xhs干的正是这件事:把小红书的网页请求封装成一个个直觉化的方法,让"取数"从体力活变成一行代码。
note = client.get_note_by_id("笔记ID", "xsec_token")上面这一行,返回的就是一条笔记的完整字典:标题、正文、标签、图片链接、点赞收藏评论数,全在里面。💡 记住这行的感觉,后面所有功能都是同一套逻辑。
它有 3 个让人记住的记忆点:
- 整站接口全覆盖:不只是笔记。用户主页、搜索、首页推荐、评论区(含子评论),甚至连"关注、点赞、收藏"这类互动操作都封好了。
- 公开数据 + 创作者后台双通道:普通页面抓不到的数据,还能从 creator 后台走通,比如发布笔记。
- 自带一堆小工具:批量下载笔记图片、从笔记数据里提取图片/视频直链、二维码登录,开箱即用。
不需要你会逆向、不需要懂签名算法,它已经帮你把最难啃的骨头啃完了。
三分钟跑通:装好就能拿到第一批数据
别被"签名"两个字吓到,跟着走就行。
第一步,安装。Python 3.7+ 即可:
pip install xhs playwright playwright install第二条命令是给签名服务装浏览器内核,第一次运行会下载一会儿,耐心等。
第二步,取 cookie。打开小红书网页版并登录,在开发者工具里复制 cookie 字符串,重点确认包含a1、web_session、webId三个字段。
第三步,跑第一条数据。参考项目里的 example/basic_usage.py,把 cookie 填进XhsClient(cookie, sign=sign),然后:
note = client.get_note_by_id("6505318c000000001f03c5a6", "笔记的xsec_token") print(note["title"], note["liked_count"], note["comment_count"])看到标题和互动数据打印出来的那一刻,你就已经打通了整条取数链路——之后的任何功能,都只是换一个方法名而已。🚀
进阶一点:批量、落盘、把签名搬去服务端
基础跑通只是开始,这 3 个能力才是它真正"能干活"的证明:
- 整号批量抓取:
get_user_all_notes(用户ID)会循环翻页把某个作者的全部笔记拉下来,配合crawl_interval参数控制节奏,一个账号的历史内容几分钟内全部到手。 - 全量评论 + 图片落盘:
get_note_all_comments()把一级评论和楼中楼一起捞干净;save_files_from_note_id()则能把笔记里的所有图片直接下载到本地文件夹,做素材收集极方便。 - 签名服务化:签名的活可以交给一个独立的 Flask 服务(参考 example/basic_sign_server.py),主程序只发请求。多账号协同、长期挂机时,这个架构能显著降低签名失败率。
也就是说,它不只是"能玩",批量采集这种生产级需求,它同样接得住。
新手最常踩的四个坑
Q:为什么我老是报签名错误(SignError)?签名依赖浏览器环境,playwright版本、stealth 脚本路径、甚至网络波动都可能影响。先确认 stealth.min.js 路径正确,再给签名函数加重试逻辑,示例代码里已经写好了。
Q:cookie 填了还是 401 / 需要验证?最常见原因是缺少a1字段,或者web_session过期。a1、web_session、webId 三者缺一不可,重新登录刷新 cookie 基本能解决。
Q:抓了一会儿 IP 被封了?会触发IPBlockError。这不是 bug,是平台的正常风控。降低抓取频率、加大间隔、必要时挂代理,别拿一个 IP 死命薅。
Q:只能读数据吗?能不能发笔记、点赞、关注?能。like_note、follow_user、comment_note这些方法都在,发布笔记走 creator 通道。但请记住:操作类功能务必谨慎使用,高频互动同样有风险。
它适合谁?又不适合谁?
适合:要做内容选题分析、竞品账号监控、电商选品的个人研究者和中小团队;有一定 Python 基础、想快速拿到结构化数据的开发者。它对"数据量中等、频率可控"的使用场景非常顺手。
不适合:完全零代码、想要"点一下导出 Excel"的非技术用户——它毕竟是个 Python 库;也不适合打算大规模、高频率抓取来做商业变现的玩家——技术上有风险,合规上更有风险。
工具本身没有立场,怎么用、用多狠,是你自己的选择。
现在就动手:给今晚的自己一个交代
你不需要记住这篇文章的全部内容,只需要带走一个判断:下次再想分析小红书数据时,别打开浏览器手动复制了,先想起有个叫 xhs 的工具。
接下来的行动路径:
pip install xhs,装好环境;- 打开 docs/basic.rst 走一遍快速入门;
- 跑通 example/basic_usage.py,拿到第一份数据;
- 想抓主页、评论、用户信息,翻 docs/crawl.rst,全是现成的方法名;
- 想要最新源码,可以 clone:
git clone https://gitcode.com/gh_mirrors/xh/xhs
数据不会自己跑到你手里,但它会。从今晚的第一条命令开始。
【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
