基于OpenClaw框架构建小红书自动化技能:从架构设计到实战部署
简介这是一套面向AI自动化开发者的「小红书内容运营自动化技能包」专为OpenClaw框架设计解决多账号批量发布、数据采集与互动管理等高频运营痛点。资源共68个文件以46个Python核心脚本如xhs_publish.py、xhs_trending.py、xhs_auto_pipeline.py为主体辅以6份Markdown文档含SKILL.md、README_CN.md、3个Shell/Bat部署脚本及配置模板config.example.json、env_example整体仅167KB轻量易集成。已有101人学习下载适用于需快速落地小红书AI内容分发、趋势抓取与数据看板构建的开发者与运营工程师。用户可直接调用命令行工具完成从登录扫码、素材下载、标题正文自动填充、多图上传到话题标签写入的全流程发布同时支持首页推荐流解析、笔记详情与评论深度抓取、点赞收藏等互动控制以及“笔记基础信息”数据导出CSV等功能所有能力均基于Chrome DevTools Protocol实现适配2026年2–3月最新DOM结构变动。1. 项目缘起当OpenClaw遇上小红书一个自动化新场景的诞生最近在折腾OpenClaw这个AI智能体框架发现社区里关于它的讨论热度一直不低但多数都集中在技术部署、模型接入或者一些通用任务上。作为一个经常需要研究内容平台趋势的从业者我就在想能不能把OpenClaw的能力定向地应用到像小红书这样充满活力的内容社区里毕竟小红书的“爆款”逻辑、用户偏好和内容趋势对于很多做内容、做产品、做市场的人来说都是极具价值的“数据富矿”。手动去刷、去记、去分析效率太低而且容易有个人偏见。如果能用OpenClaw建立一个自动化的工作流让它像一位不知疲倦的、具备基础分析能力的“数字员工”去持续地观察、抓取和分析小红书上的趋势那价值就太大了。这个想法就是“Xiaohongshu automation skill for OpenClaw”的起点。它不是一个现成的、开箱即用的产品而是一个基于OpenClaw框架的“技能”Skill构想与实践。核心目标很明确让OpenClaw智能体能够理解并执行与小红书平台相关的特定任务比如监测特定话题的热度变化、批量获取合规的公开内容信息进行分析、甚至是模拟用户行为进行一些合规的交互测试。这里的“automation”不是指粗暴的爬虫或刷量而是在理解和尊重平台规则的前提下实现数据获取与初步分析的流程自动化将人从重复、低效的信息筛选中解放出来更专注于策略制定和创意生成。从技术栈来看这涉及到几个层面的结合OpenClaw作为智能体的“大脑”和任务调度中心可能需要一些基础的网络请求库来处理与小红书的通信更需要设计一套让AI能理解小红书页面结构、内容元素和交互逻辑的“认知”方案。这背后对OpenClaw的技能扩展机制、外部工具调用以及上下文理解能力都有一定的要求。接下来我就结合自己的探索过程详细拆解如何为OpenClaw赋予这项“小红书自动化”的技能包括核心思路、关键技术点、实操步骤以及那些容易踩进去的坑。2. 核心架构设计如何让OpenClaw“理解”小红书为OpenClaw添加一个针对特定平台的Skill本质上是在扩展其能力边界。OpenClaw本身是一个智能体框架它擅长理解自然语言指令、规划任务步骤、调用工具Tools并管理执行状态。我们的目标就是构建一套专门用于处理小红书相关任务的“工具包”并将这些工具的逻辑封装成一个OpenClaw能识别和调用的Skill。2.1 技能Skill的本质与工作流设计在OpenClaw的语境里一个Skill通常包含几个关键部分技能描述让OpenClaw知道这个技能能干什么、技能参数执行时需要哪些输入、以及最重要的——技能的执行函数这个函数里封装了具体的业务逻辑。对于小红书自动化技能它的工作流可以这样设计指令解析用户向OpenClaw发出类似“帮我看看最近一周‘健康养生’赛道下有哪些爆款图文”的指令。OpenClaw的核心AI模型可能是接入了本地的大语言模型会首先理解这个指令的意图。技能匹配OpenClaw在自己的技能库中寻找匹配的Skill。它需要识别出这个指令与“小红书内容分析”相关从而激活我们开发的这个“Xiaohongshu Automation Skill”。参数提取与任务规划技能被激活后OpenClaw会从指令中提取关键参数例如时间范围“最近一周”、关键词“健康养生”、内容类型“爆款图文”。然后它会规划出具体的任务步骤比如“第一步搜索关键词第二步按时间过滤第三步识别爆款特征点赞、收藏、评论数第四步整理结果”。工具调用与执行规划好步骤后OpenClaw会按顺序调用Skill中封装的各个工具Tools。这些工具才是真正与小红书“打交道”的代码。例如一个search_xiaohongshu工具负责发起搜索请求并解析初步结果一个filter_by_time工具负责时间筛选一个extract_post_details工具负责进入单篇笔记页面抓取详细数据。结果整合与返回所有工具执行完毕后Skill的执行函数会将各个步骤的结果汇总、清洗、格式化最后以一个结构化的方式比如JSON、Markdown表格返回给用户或者触发下一个自动化动作如保存到数据库、生成分析报告。这个工作流的关键在于将复杂的、多步骤的小红书数据分析任务拆解成一系列原子化的、可被OpenClaw调度的小工具。OpenClaw负责“思考”和“指挥”我们的Skill提供“专业工具”。2.2 关键技术选型与考量要实现上述工作流我们需要选择合适的技术组件。这里有几个核心考量点交互方式选择Web API vs. 模拟请求理想情况Web API如果小红书平台提供了官方、稳定、合规的开放API那将是最佳选择。我们可以直接调用API获取数据稳定且合法。但现实是这类内容平台的核心数据API通常不向普通开发者开放或申请门槛极高。现实方案模拟请求因此更实际的方案是模拟普通用户或网页端的请求。这需要分析小红书网页版或移动端通过抓包的网络请求接口XHR/Fetch。这些接口虽然未公开但通过浏览器开发者工具可以观察到。必须严格遵守robots.txt协议和平台的使用条款确保我们的请求频率极低、行为模拟真实用户浏览且仅用于获取公开数据绝对不涉及核心用户隐私、不进行恶意爬取或干扰平台正常运行。这是法律和道德的底线。页面解析方案正则表达式 vs. HTML解析器 vs. 无头浏览器正则表达式对于结构简单、固定的页面片段可能有效但面对现代复杂的、动态渲染的网页正则表达式脆弱且难以维护不推荐作为主要方案。HTML解析器如BeautifulSoup, lxml适用于静态HTML内容。如果小红书搜索列表页或笔记详情页的主要内容在初始HTML中这是一个轻量且高效的选择。我们需要分析页面DOM结构找到包含标题、图片、点赞数等信息的HTML标签和CSS选择器。无头浏览器如Playwright, Selenium这是应对动态渲染页面的“重型武器”。小红书的部分内容特别是涉及滚动加载、复杂交互的很可能由JavaScript动态生成。无头浏览器可以模拟完整的浏览器环境执行JS等待元素加载能最真实地模拟用户操作获取最终渲染后的内容。缺点是资源消耗大、速度慢。一个折中策略是先尝试用HTTP请求解析器获取基础数据只有在必要如获取滚动加载内容、处理复杂交互时才启用无头浏览器。数据存储与处理抓取到的原始数据需要清洗去除HTML标签、统一格式、去重、并可能存储到本地文件如JSON、CSV或数据库如SQLite、MySQL中供后续分析。对于“爆款”的识别需要定义规则。例如可以设定一个基于点赞、收藏、评论、分享数的综合热度阈值或者识别“xx万赞”、“爆了”等文案标签。与OpenClaw的集成这是本项目的核心。我们需要按照OpenClaw Skill的开发规范将上述的数据获取、解析、处理逻辑包装成一个个Tool类。每个Tool需要有清晰的name、description和_run方法。然后将这些Tools组合起来注册到一个自定义的Skill类中并提供一个总的技能描述。OpenClaw通常通过配置文件或代码注册的方式来加载自定义Skill。我们需要将开发好的Skill模块放到正确的目录并在OpenClaw的配置中声明使其在智能体初始化时被加载进技能库。注意合规性与伦理是首要前提。所有自动化操作必须模拟正常人类用户的访问间隔和频率避免对小红书服务器造成压力。严格限定数据使用范围仅用于个人学习或公开的、非商业的趋势分析。绝对禁止抓取非公开数据、用户隐私信息或用于任何干扰平台、 spam、刷量等违规用途。在设计和实施过程中必须反复审视这一点。3. 实战部署从零构建一个基础的小红书趋势监测Skill理论讲完了我们动手搭建一个最基础的版本。这个Skill的目标是根据用户提供的关键词获取小红书APP或网页端搜索该关键词的结果列表并提取笔记的基本信息标题、作者、点赞数、链接。3.1 环境准备与依赖安装假设我们的OpenClaw已经部署在了一个Python环境中。首先为这个Skill创建一个独立的项目目录或虚拟环境安装必要的依赖。# 创建并进入项目目录 mkdir openclaw-xhs-skill cd openclaw-xhs-skill # 创建虚拟环境可选但推荐 python -m venv venv source venv/bin/activate # Linux/Mac # venv\Scripts\activate # Windows # 安装核心依赖 # requests 用于发送HTTP请求 # beautifulsoup4 用于解析HTML # playwright 用于处理动态页面可选但建议安装 pip install requests beautifulsoup4 # 安装playwright及其浏览器 pip install playwright playwright install chromium如果OpenClaw是全局安装的确保你的Skill开发环境能访问到OpenClaw的SDK或库文件。通常自定义Skill可以作为一个独立的Python包最后通过路径或打包安装的方式被OpenClaw加载。3.2 分析小红书页面结构与接口这是最具实操性的一步。我们以小红书网页版的搜索为例移动端接口通常更复杂且易变。打开浏览器开发者工具用Chrome或Edge打开小红书官网 (xiaohongshu.com)在搜索框输入一个关键词如“健康养生”按回车。切换到Network网络选项卡勾选Preserve log保留日志。刷新页面或进行搜索观察所有的网络请求。寻找数据接口在众多请求中寻找返回数据是JSON格式的XHR/Fetch请求。这些请求的URL可能包含/api/、/web_api/等字样或者直接返回一个包含笔记列表的JSON对象。你需要仔细查看Preview预览标签页找到包含笔记标题、图片、用户信息、点赞数的那个请求。分析请求参数点击找到的请求查看Headers标头和Payload负载如果是POST请求。你需要关注URL请求的完整地址。Request Method通常是GET或POST。Query String Parameters / Form Data请求附带的参数如关键词(keyword)、分页参数(page、page_size)、排序方式等。Headers尤其是Cookie、User-Agent、Referer、X-*等自定义头部。小红书很可能需要一些认证信息或反爬虫标识。User-Agent需要设置为常见的浏览器标识。模拟请求尝试用Python的requests库复制你分析出的URL、Headers和Parameters发起一个相同的请求看是否能成功获取到JSON数据。一个非常重要的发现小红书对未登录状态和基础请求头做了很多限制。你可能发现直接复制请求有时会失败返回错误码或空数据。这时playwright这样的无头浏览器工具就派上用场了。它可以帮你先“访问”一下页面自动处理Cookie、JS生成令牌等复杂问题然后再从中提取出有效的请求信息或者直接通过页面交互来获取数据。3.3 编写核心工具Tools基于以上分析我们编写两个基础的Tool一个用于搜索一个用于解析详情。# xiaohongshu_tools.py import requests from bs4 import BeautifulSoup import json import re from typing import Dict, List, Optional from playwright.sync_api import sync_playwright # 异步API也可行 class XiaohongshuSearchTool: 一个用于搜索小红书公开笔记的工具 name search_xiaohongshu_by_keyword description 根据关键词搜索小红书上的公开笔记返回笔记列表的基本信息。 def _run(self, keyword: str, max_results: int 20) - str: 执行搜索。 Args: keyword: 搜索关键词 max_results: 最大返回结果数 Returns: 格式化后的搜索结果字符串JSON或Markdown # 注意这里的URL和headers是示例需要根据实际分析结果替换 # 小红书网页版搜索接口可能类似 # url fhttps://www.xiaohongshu.com/web_api/sns/v3/search/notes?keyword{keyword}page1page_size{max_results} # headers { # User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..., # Referer: https://www.xiaohongshu.com/, # # 可能需要其他headers # } # 由于接口不稳定且需要处理反爬这里采用更稳健的Playwright方案 notes_list [] with sync_playwright() as p: browser p.chromium.launch(headlessTrue) # 无头模式 context browser.new_context( user_agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ... ) page context.new_page() # 访问小红书搜索页 search_url fhttps://www.xiaohongshu.com/search_result?keyword{keyword} page.goto(search_url) page.wait_for_load_state(networkidle) # 等待网络基本空闲 # 这里需要根据实际页面结构来定位笔记卡片元素 # 例如笔记卡片可能有一个共同的CSS类如 .note-item note_cards page.query_selector_all(.note-item) # 这个选择器需要你实际分析确定 for card in note_cards[:max_results]: try: # 提取信息同样需要根据实际DOM结构调整 title_elem card.query_selector(.title) author_elem card.query_selector(.author) likes_elem card.query_selector(.like-count) note_info { title: title_elem.inner_text() if title_elem else 无标题, author: author_elem.inner_text() if author_elem else 未知作者, likes: likes_elem.inner_text() if likes_elem else 0, # 获取笔记ID或链接可能需要从点击跳转链接中提取 # link: card.get_attribute(href) } # 简单处理点赞数去掉“赞”等文字 note_info[likes] re.sub(r[^0-9], , note_info[likes]) or 0 notes_list.append(note_info) except Exception as e: print(f解析单个笔记卡片时出错: {e}) continue browser.close() # 将结果格式化为JSON字符串返回OpenClaw可以进一步处理 return json.dumps(notes_list, ensure_asciiFalse, indent2) class XiaohongshuDetailTool: 获取单篇小红书笔记的更多详情如果需要的话 name get_xiaohongshu_note_detail description 根据小红书笔记的ID或链接获取更详细的内容如正文、标签、评论数等。 def _run(self, note_id_or_url: str) - str: # 实现逻辑访问笔记详情页解析正文、图片、标签、收藏数、评论数等 # 同样建议使用Playwright来确保能获取到动态加载的内容 # 返回结构化的详情信息 pass3.4 封装为OpenClaw Skill并集成接下来我们将这些Tool封装成一个正式的OpenClaw Skill。# xiaohongshu_skill.py from openclaw.skills import BaseSkill, tool # 假设OpenClaw的Skill基类导入路径如此 from .xiaohongshu_tools import XiaohongshuSearchTool, XiaohongshuDetailTool # 导入刚才写的工具 class XiaohongshuAutomationSkill(BaseSkill): 一个让OpenClaw智能体能够自动化处理小红书相关任务的技能。 name Xiaohongshu Automation description 提供与小红书平台相关的自动化能力包括内容搜索、趋势分析和基础数据获取。 def __init__(self): super().__init__() # 初始化工具实例 self.search_tool XiaohongshuSearchTool() self.detail_tool XiaohongshuDetailTool() # 如果实现了的话 tool def search_notes(self, keyword: str, max_results: int 10) - str: 搜索小红书笔记。 Args: keyword: 搜索关键词 max_results: 返回的最大笔记数量 return self.search_tool._run(keyword, max_results) # 可以注册更多工具比如按热度过滤、按作者搜索等 # tool # def get_trending_topics(self, category: str): # ... # 技能注册函数根据OpenClaw的实际注册方式调整 def register_skill(agent): skill XiaohongshuAutomationSkill() agent.register_skill(skill) return skill最后我们需要让OpenClaw知道这个新技能的存在。这通常通过在OpenClaw的配置文件如config.yaml中添加技能路径或者在初始化智能体的代码中动态注册。# config.yaml 示例 skills: - name: Xiaohongshu Automation module: path.to.your.xiaohongshu_skill class_name: XiaohongshuAutomationSkill或者在Python代码中from openclaw import OpenClawAgent from my_skills.xiaohongshu_skill import XiaohongshuAutomationSkill agent OpenClawAgent(config...) xiaohongshu_skill XiaohongshuAutomationSkill() agent.register_skill(xiaohongshu_skill) # 现在你可以对agent说“帮我搜索一下小红书上的‘露营装备’笔记” result agent.run(帮我搜索一下小红书上的‘露营装备’笔记最多10条。) print(result)4. 避坑指南与进阶思考在实际开发和运行过程中你会遇到不少挑战。以下是我踩过的一些坑和对应的思考。4.1 高频问题与反爬虫策略应对小红书作为一个大型平台拥有完善的反爬虫机制。直接、高频、规律性的请求很容易被识别并封锁返回验证码、错误码或空数据。坑1请求频率过高导致IP或账号被限流。应对在工具代码中每个请求之间加入随机延时例如time.sleep(random.uniform(2, 5))模拟真人浏览的间隔。可以考虑使用代理IP池来分散请求源但这增加了复杂度和成本且需确保代理的合法性。坑2请求头Headers不完整或被识别为脚本。应对使用playwright或selenium等自动化浏览器工具的最大好处之一就是它们能生成真实、完整的浏览器环境和请求头极大降低了被直接识别为脚本的风险。即使使用requests也要仔细复制浏览器中的所有关键Headers特别是User-Agent、Cookie如果需要登录态、Referer等。坑3页面结构动态变化CSS选择器失效。应对不要依赖过于具体或脆弱的CSS选择器如.note-item:nth-child(3) div a。尽量选择那些具有语义化、相对稳定的类名或属性。同时代码中要有健壮的异常处理try...except当某个元素找不到时记录日志并跳过而不是让整个程序崩溃。定期检查和更新选择器。坑4数据需要登录才能查看。应对这涉及到账户安全强烈不建议在自动化脚本中使用个人主账号。如果必须登录考虑使用专门的、非私人的测试账号。通过Playwright记录登录会话Cookie并将会话状态保存和复用。但请注意平台可能会检测异常的登录状态保持行为。最根本的重新评估需求是否真的需要登录后才能获取的数据很多趋势分析基于公开的搜索结果和笔记摘要已经足够。4.2 技能设计的扩展性与维护性一个基础的搜索Skill只是起点。要让这个Skill真正有用需要考虑扩展性。参数化与灵活性让Skill能接受更多参数如排序方式综合、最新、最热、时间范围当天、本周、本月、特定分类美食、旅行、美妆等。这需要更深入地分析搜索接口的参数。结果后处理OpenClaw的AI能力可以在这里发挥。我们可以不直接返回原始列表而是让Skill调用一个“分析”工具对抓取到的笔记列表进行总结例如“关于‘健康养生’近期热度最高的三个方向是轻断食、居家拉伸、保健品避坑。代表性笔记的点赞数均在1万以上。” 这需要将抓取的数据传递给OpenClaw集成的LLM进行分析。定时任务与监控结合OpenClaw的调度能力或外部的任务队列如Celery、APScheduler可以让这个Skill定期如每天上午10点执行监控特定关键词的热度变化并将结果通过邮件、钉钉机器人等方式推送给你。技能组合这个小红书Skill可以和其他Skill组合。例如先使用小红书Skill抓取爆款笔记的标题和文案再调用一个“文案分析Skill”来提炼其写作套路和关键词或者调用一个“图片下载Skill”保存配图需极度注意版权和合规。4.3 伦理、合规与未来展望最后也是最重要的部分。开发和使用这类自动化技能必须时刻绷紧合规这根弦。数据用途获取的数据应仅用于个人学习、市场趋势分析、公开内容研究等合法合规目的。严禁用于数据倒卖、恶意竞争、骚扰用户或任何违反《网络安全法》、《数据安全法》及平台用户协议的行为。尊重版权笔记的图片、视频和原创文案受版权保护。未经允许不得大规模下载、转载或用于商业用途。分析趋势时应侧重于公开的元数据如标题、热度值和可公开获取的摘要信息。控制影响将请求频率控制在极低水平避免对小红书服务器造成任何可感知的负担。你的自动化行为应该像一个“安静的观察者”而不是“嘈杂的破坏者”。技术向善这项技术的价值在于提升信息获取和分析的效率辅助人类做出更明智的决策而不是替代人类的创造性工作或进行不当干预。我们应当用它来发现好的内容、理解用户需求、激发创作灵感而不是制造信息垃圾或进行操纵。未来随着OpenClaw等AI智能体框架的进化以及平台可能提供的更友好的数据接口如更完善的开放平台这类自动化技能会变得更加高效、稳定和合规。但核心的逻辑不会变用技术放大我们的洞察力同时用责任约束我们的行动边界。这个小红书自动化Skill的探索不仅是一个技术实现更是一次关于如何在数字时代合理、合法、合情地使用自动化工具的思考。本文还有配套的精品资源点击获取