小红书数据采集工具 xhs 实战指南:3 个避坑关键让笔记抓取不再头疼 小红书数据采集工具 xhs 实战指南3 个避坑关键让笔记抓取不再头疼【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs想做小红书数据分析却卡在第一步手动打开几十篇笔记复制标题、点赞数、评论半小时过去只存下 5 条数据写爬虫又撞上小红书 Web 端的 x-s 签名校验requests 一发出去就被拦。xhs 就是为这个问题而生的 Python 数据采集工具它封装了小红书网页端接口让你用十几行代码就能拿到笔记详情、用户资料和完整评论把精力留给分析而不是反爬对抗。先搞懂一件事xhs 到底能碰哪些数据别急着装库先建立全局认知。xhs 不是把小红书搬回家的黑科技它是一层干净的请求封装覆盖两类平台小红书主页端www.xiaohongshu.com查笔记、搜用户、抓评论创作服务平台creator.xiaohongshu.com面向博主的内容管理能力用能力矩阵看更直观能力类型具体接口典型用途笔记获取按 ID 查笔记、按关键词搜索竞品分析、选题调研用户数据查用户信息、主页推荐流账号画像、涨粉观察互动数据笔记评论、子评论、点赞收藏舆情分析、互动率统计账号操作关注、点赞、收藏、发评论自动化运营慎用创作服务笔记发布等创作者功能博主自用发布辅助一句话总结读数据查是它的主场写操作评论、点赞也能做但要遵守平台规则、控制频率。对应地源码把功能收敛在 xhs/core.py 一个文件里所有能力都通过XhsClient这个入口对象暴露学习成本很低。从零到一跑通第一个抓取脚本第 1 步环境准备别漏了签名组件安装比想象中多两样东西别只pip install xhs就收工pip install xhs pip install playwright playwright install为什么要 playwright因为小红书的 x-s 签名算法藏在浏览器 JS 里还带环境检测。xhs 的方案是借力——用无头浏览器调用window._webmsxyw拿到签名再用 stealth.min.js 绕过环境检测。这三件套缺一不可官方文档 docs/basic.rst 里有完整说明。第 2 步准备 cookie三个字段是命门登录小红书网页版从浏览器开发者工具里复制 cookie。记住a1、web_session、webId三个字段必须齐全缺一个请求就废。第 3 步写第一个脚本核心代码其实只有三行from xhs import XhsClient, help client XhsClient(cookie, signsign) # 传入 cookie 和签名函数 note client.get_note_by_id(笔记ID) # 拉取笔记详情 print(help.get_imgs_url_from_note(note)) # 一键提取笔记图片地址完整可运行版本在 example/basic_usage.py直接抄改 cookie 就能跑。注意签名函数里有个sleep(1)的细节——设置浏览器 cookie 后不稍等片刻签名必然失败这个坑作者写在注释里了。避坑指南签名、限流与登录过期这是我实测下来最容易翻车的三个点按重要性排序坑 1x-s 签名失败重试是常态签名不是一次就成功的。window._webmsxyw is not a function、未知跳转都是常见报错。官方示例的做法是循环重试 10 次每次失败重新启动浏览器。抓取脚本里也应该对DataFetchError做同样的重试处理。坑 2多账号场景a1 必须统一如果你要用签名服务跑多账号务必保证各账号 cookie 里的a1字段一致否则签名会一直报错。这是个容易忽视的隐性约束文档 docs/basic.rst 里明确标注了。坑 3抓太快会被封 IPxhs 内置了IPBlockError异常——当请求过于频繁服务器会直接拉黑你的 IP。看到这个异常别慌降速、加延时、换代理是标准解法。异常体系设计得很清晰xhs/exception.py 里把DataFetchError、IPBlockError、SignError分得明明白白方便针对性地做重试策略。进阶把签名服务化多账号批量采集脚本跑通了但每次抓取都启动一个浏览器太重批量场景根本扛不住。xhs 提供了更优雅的方案把 playwright 封装成独立的 Flask 签名服务主程序只用轻量的 requests 请求签名多账号共用同一服务。一条命令起服务docker run -it -d -p 5005:5005 reajason/xhs-api:latest服务端代码在 xhs-api/客户端调用方式参考 example/basic_sign_usage.py。改造之后批量采集的性能瓶颈就从浏览器启动开销变成了网络带宽配合搜索接口get_note_by_keyword和评论接口get_note_comments搭一个关键词到评论数据的完整流水线绰绰有余。登录方式怎么选二维码还是手机号需要写操作发布、评论时cookie 会过期。项目提供了两种重新登录方案示例都在 example/ 目录二维码登录example/login_qrcode.py调用get_qrcode拿二维码再用check_qrcode轮询状态扫码即登录适合日常使用手机号登录example/login_phone.py适合自动化场景但要自行处理验证码环节个人建议日常分析优先二维码验证码环节更省心。写在最后采集有边界数据要用好聊点题外话。xhs 项目作者在 README 里写得很坦诚这个仓库主要是练习 Python 技能同时提醒大家——网页爬取可能存在合规风险不要给网站施加压力。所以请只采集公开数据、控制请求频率、不碰未授权内容把工具用在正经的市场分析和内容研究上。现在就可以动手了pip install xhs准备好 cookie 和 playwright参照 docs/basic.rst 跑通第一行代码再从 docs/crawl.rst 开始探索评论抓取和搜索能力。如果本地环境装不上 playwright也可以从 https://gitcode.com/gh_mirrors/xh/xhs 拉取源码研究实现细节。数据采集的坑我已经替你踩过一轮剩下的大胆去试吧。【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考