[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-white0dew--XiaohongshuSkills":3,"tool-white0dew--XiaohongshuSkills":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,43,44,45,15,46,26,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70626,"2026-04-05T22:51:36",[26,15,13,45],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":80,"owner_twitter":80,"owner_website":80,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":23,"env_os":92,"env_gpu":93,"env_ram":93,"env_deps":94,"category_tags":98,"github_topics":80,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":99,"updated_at":100,"faqs":101,"releases":130},2465,"white0dew\u002FXiaohongshuSkills","XiaohongshuSkills","支持小红书自动发布、自动评论、自动检索的 Skill。支持 OpenClaw、Codex、CC 等","XiaohongshuSkills 是一款专为小红书平台打造的自动化命令行工具，旨在帮助开发者高效管理内容发布与数据交互。它支持自动发布笔记、智能评论互动、关键词检索以及数据抓取等核心功能，能够显著减少人工重复操作，提升运营效率。\n\n对于需要批量管理多个账号、定期发布内容或进行竞品数据分析的开发者及技术人员而言，XiaohongshuSkills 提供了极大的便利。它不仅解决了手动登录繁琐、多账号切换困难以及内容发布流程机械化的问题，还特别适配了小红书创作者中心的界面变动，确保自动化流程的稳定运行。普通用户若不具备编程基础，可能较难直接上手，但其强大的功能使其成为技术型创作者和自动化测试人员的得力助手。\n\n在技术实现上，XiaohongshuSkills 基于 Chrome DevTools Protocol (CDP) 构建，支持无头模式（后台静默运行）和远程调试连接，这意味着它可以在服务器端稳定执行任务而无需占用图形界面。工具具备完善的登录状态缓存机制，支持二维码远程扫码登录，并能自动处理图片防盗链下载。此外，它还精细化了话题标签的自动写入逻辑，并提供了从首页推荐流抓取到笔记详情、","XiaohongshuSkills 是一款专为小红书平台打造的自动化命令行工具，旨在帮助开发者高效管理内容发布与数据交互。它支持自动发布笔记、智能评论互动、关键词检索以及数据抓取等核心功能，能够显著减少人工重复操作，提升运营效率。\n\n对于需要批量管理多个账号、定期发布内容或进行竞品数据分析的开发者及技术人员而言，XiaohongshuSkills 提供了极大的便利。它不仅解决了手动登录繁琐、多账号切换困难以及内容发布流程机械化的问题，还特别适配了小红书创作者中心的界面变动，确保自动化流程的稳定运行。普通用户若不具备编程基础，可能较难直接上手，但其强大的功能使其成为技术型创作者和自动化测试人员的得力助手。\n\n在技术实现上，XiaohongshuSkills 基于 Chrome DevTools Protocol (CDP) 构建，支持无头模式（后台静默运行）和远程调试连接，这意味着它可以在服务器端稳定执行任务而无需占用图形界面。工具具备完善的登录状态缓存机制，支持二维码远程扫码登录，并能自动处理图片防盗链下载。此外，它还精细化了话题标签的自动写入逻辑，并提供了从首页推荐流抓取到笔记详情、评论回复及互动数据导出的全套解决方案，为小红书内容的自动化运营提供了坚实的技术支撑。","# RedBookSkills\n\n\n\n自动发布内容到小红书（Xiaohongshu\u002FRED）的命令行工具，也支持仅启动测试浏览器（不发布）。\n通过 Chrome DevTools Protocol (CDP) 实现自动化发布，支持多账号管理、无头模式运行、自动搜索素材与内容数据抓取等功能。\n\n## 功能特性\n- **自动化发布**：自动填写标题、正文、上传图片\n- **创作者中心兼容修复**：适配 2026 年 2-3 月发布页 DOM 变动（发布按钮、定时开关、日期输入、多图上传等待、正文编辑器）\n- **话题标签自动写入**：识别正文最后一行 `#标签`，然后逐渐写入\n- **多账号支持**：支持管理多个小红书账号，各账号 Cookie 隔离\n- **无头模式**：支持后台运行，无需显示浏览器窗口\n- **远程 CDP 支持**：可通过 `--host` \u002F `--port` 连接远程 Chrome 调试端口\n- **图片下载**：支持从 URL 自动下载图片，自动添加 Referer 绕过防盗链\n- **登录检测**：自动检测登录状态，未登录时自动切换到有窗口模式扫码\n- **登录二维码导出**：支持返回登录二维码 Base64 图片，便于远程前端展示扫码\n- **登录状态缓存**：`check_login\u002Fcheck_home_login` 默认本地缓存 12 小时，减少重复跳转校验\n- **首页推荐流抓取**：支持抓取首页推荐 feed 列表\n- **内容检索与详情读取**：支持搜索笔记并获取指定笔记详情（含评论数据），详情可选滚动加载更多评论\u002F回复\n- **笔记评论**：支持按 `feed_id + xsec_token` 对指定笔记发表一级评论\n- **评论回复**：支持按评论定位条件（评论 ID \u002F 作者 \u002F 文本片段）回复指定评论\n- **互动动作控制**：支持对指定笔记执行点赞\u002F取消点赞、收藏\u002F取消收藏\n- **用户页信息提取**：支持抓取用户主页快照与主页笔记列表\n- **通知评论抓取**：支持在 `\u002Fnotification` 页面抓取 `you\u002Fmentions` 接口返回\n- **内容数据看板抓取**：支持抓取“笔记基础信息”表（曝光\u002F观看\u002F点赞等）并导出 CSV\n\n## 安装\n\n### 环境要求\n\n- Python 3.10+\n- Google Chrome 浏览器\n- Windows 操作系统（目前仅测试 Windows）\n\n### 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n## 快速开始\n\n### 1. 首次登录\n\n```bash\npython scripts\u002Fcdp_publish.py login\n```\n\n在弹出的 Chrome 窗口中扫码登录小红书。\n\n说明：当前发布链路已按 2026 年 2-3 月的小红书创作者中心改版调整过选择器与等待策略；如果后续再次改版，优先检查 `scripts\u002Fcdp_publish.py` 中的 `SELECTORS`、多图上传等待和发布按钮点击逻辑。\n\n### 2. 启动\u002F测试浏览器（不发布）\n\n```bash\n# 启动测试浏览器（有窗口，推荐）\npython scripts\u002Fchrome_launcher.py\n\n# 无头启动测试浏览器\npython scripts\u002Fchrome_launcher.py --headless\n\n# 检查当前登录状态\npython scripts\u002Fcdp_publish.py check-login\n\n# 获取登录二维码（返回 Base64，可供远程前端直接展示）\npython scripts\u002Fcdp_publish.py get-login-qrcode\n\n# 可选：优先复用已有标签页（减少有窗口模式下切到前台）\npython scripts\u002Fcdp_publish.py check-login --reuse-existing-tab\n\n# 连接远程 CDP（Chrome 在另一台机器）\npython scripts\u002Fcdp_publish.py --host 10.0.0.12 --port 9222 check-login\n\n# 重启测试浏览器\npython scripts\u002Fchrome_launcher.py --restart\n\n# 关闭测试浏览器\npython scripts\u002Fchrome_launcher.py --kill\n```\n\n### 3. 发布内容\n\n```bash\n# 无头模式（推荐，默认自动发布）\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 有窗口预览模式（仅填充，不自动点发布）\npython scripts\u002Fpublish_pipeline.py \\\n    --preview \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 可选：优先复用已有标签页（减少有窗口模式下切到前台）\npython scripts\u002Fpublish_pipeline.py --reuse-existing-tab \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 连接远程 CDP 并发布（远程 Chrome 需已开启调试端口）\npython scripts\u002Fpublish_pipeline.py --host 10.0.0.12 --port 9222 \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 从文件读取内容\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title-file title.txt \\\n    --content-file content.txt \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 正文最后一行可放话题标签（最多 10 个）\n# 例如 content.txt 最后一行：\n# #春招 #26届 #校招 #求职 #找工作\n\n# 使用本地图片\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --images \"C:\\path\\to\\image.jpg\"\n\n# WSL\u002F远程 CDP + Windows\u002FUNC 路径可跳过本地文件预校验\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --images \"\\\\wsl.localhost\\Ubuntu\\home\\user\\image.jpg\" \\\n    --skip-file-check\n\n```\n\n### 4. 多账号管理\n\n```bash\n# 列出所有账号\npython scripts\u002Fcdp_publish.py list-accounts\n\n# 添加新账号\npython scripts\u002Fcdp_publish.py add-account myaccount --alias \"我的账号\"\n\n# 登录指定账号\npython scripts\u002Fcdp_publish.py --account myaccount login\n\n# 使用指定账号发布\npython scripts\u002Fpublish_pipeline.py --account myaccount --headless \\\n    --title \"标题\" --content \"正文\" --image-urls \"URL\"\n\n# 设置默认账号\npython scripts\u002Fcdp_publish.py set-default-account myaccount\n\n# 切换账号（清除当前登录，重新扫码）\npython scripts\u002Fcdp_publish.py switch-account\n```\n\n### 5. 搜索内容、查看笔记详情与互动操作\n\n```bash\n# 首页推荐列表\npython scripts\u002Fcdp_publish.py list-feeds\n\n# 搜索笔记（可选筛选）\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\"\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\" --sort-by 最新 --note-type 图文\n\n# 获取笔记详情（feed_id 与 xsec_token 可从搜索结果中获取）\npython scripts\u002Fcdp_publish.py get-feed-detail \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN\n\n# 可选：滚动加载更多一级评论，并尝试展开二级回复\npython scripts\u002Fcdp_publish.py get-feed-detail \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN \\\n    --load-all-comments \\\n    --limit 20 \\\n    --click-more-replies \\\n    --reply-limit 10 \\\n    --scroll-speed normal\n\n# 给笔记发表评论（一级评论）\npython scripts\u002Fcdp_publish.py post-comment-to-feed \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN \\\n    --content \"写得很实用，感谢分享！\"\n\n# 回复指定评论（可按评论ID \u002F 作者 \u002F 文本片段定位）\npython scripts\u002Fcdp_publish.py respond-comment \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN \\\n    --comment-id COMMENT_ID \\\n    --content \"感谢你的反馈～\"\n\n# 点赞 \u002F 取消点赞\npython scripts\u002Fcdp_publish.py note-upvote --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unvote --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\n\n# 收藏 \u002F 取消收藏\npython scripts\u002Fcdp_publish.py note-bookmark --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unbookmark --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\n\n# 用户主页快照 \u002F 用户主页笔记列表\npython scripts\u002Fcdp_publish.py profile-snapshot --user-id USER_ID\npython scripts\u002Fcdp_publish.py notes-from-profile --user-id USER_ID --limit 20 --max-scrolls 3\n\n# 抓取“评论和@”通知接口（you\u002Fmentions）\npython scripts\u002Fcdp_publish.py get-notification-mentions\n```\n\n说明：`list-feeds` 返回首页推荐 feed 列表；`search-feeds` 会先在搜索框输入关键词，抓取下拉推荐词（`recommended_keywords`），再回车拉取 feed 列表。\n说明：`get-feed-detail --load-all-comments` 会在详情页滚动评论区，并可选点击“更多回复”后再提取 `window.__INITIAL_STATE__`。\n\n### 6. 获取内容数据表（content_data）\n\n```bash\n# 抓取“笔记基础信息”数据表\npython scripts\u002Fcdp_publish.py content-data\n\n# 下划线别名\npython scripts\u002Fcdp_publish.py content_data\n\n# 导出 CSV\npython scripts\u002Fcdp_publish.py content-data --csv-file \"\u002Fabs\u002Fpath\u002Fcontent_data.csv\"\n```\n\n## 命令参考\n\n### 话题标签（publish_pipeline.py）\n\n- 从正文中提取规则：若“最后一个非空行”全部由 `#标签` 组成，则提取为话题标签并从正文移除。\n- 标签输入策略：逐个输入 `#标签`，等待 `3` 秒，再发送 `Enter` 进行确认。\n- 建议数量：`1-10` 个标签；超过平台限制时请手动精简。\n- 示例（正文最后一行）：`#春招 #26届 #校招 #春招规划 #面试`\n\n### publish_pipeline.py\n\n统一发布入口，一条命令完成全部流程。\n\n```bash\npython scripts\u002Fpublish_pipeline.py [选项]\n\n选项:\n  --title TEXT           文章标题\n  --title-file FILE      从文件读取标题\n  --content TEXT         文章正文\n  --content-file FILE    从文件读取正文\n  --image-urls URL...    图片 URL 列表\n  --images FILE...       本地图片文件列表\n  --skip-file-check      跳过本地媒体文件存在性检查（WSL\u002F远程 CDP\u002FUNC 路径可用）\n  --preserve-upload-paths 强制保留原始上传路径，不将反斜杠转换为正斜杠\n  --host HOST            CDP 主机地址（默认 127.0.0.1）\n  --port PORT            CDP 端口（默认 9222）\n  --headless             无头模式（无浏览器窗口）\n  --reuse-existing-tab   优先复用已有标签页（默认关闭）\n  --account NAME         指定账号\n  --auto-publish         兼容参数：默认已自动发布（可省略）\n  --preview              预览模式：仅填充内容，不点击发布\n```\n\n说明：启用 `--reuse-existing-tab` 后，发布流程仍会自动导航到发布页，因此会刷新到目标页面再继续执行。\n说明：当 `--host` 非 `127.0.0.1\u002Flocalhost` 时为远程模式，会跳过本地 `chrome_launcher.py` 的自动启动\u002F重启逻辑，请确保远程 CDP 地址可达。\n说明：当控制端运行在 WSL、但媒体路径使用 Windows\u002FUNC（如 `\\\\wsl.localhost\\...`）时，可加 `--skip-file-check` 跳过 Linux 侧 `isfile` 预校验。\n说明：脚本现在会自动识别 `C:\\...`、`\\\\wsl.localhost\\...` 等 Windows\u002FUNC 路径，并在传给 `DOM.setFileInputFiles` 时保留原始形态。\n说明：若仍想强制关闭路径改写，可显式加 `--preserve-upload-paths`。\n说明：`publish_pipeline.py` 默认会自动点击发布；如需人工确认，请显式加 `--preview`。\n\n### cdp_publish.py\n\n底层发布控制，支持分步操作。\n\n```bash\n# 检查登录状态\npython scripts\u002Fcdp_publish.py check-login\npython scripts\u002Fcdp_publish.py check-login --reuse-existing-tab\npython scripts\u002Fcdp_publish.py --host 10.0.0.12 --port 9222 check-login\n\n# 填写表单（不发布）\npython scripts\u002Fcdp_publish.py fill --title \"标题\" --content \"正文\" --images img.jpg\npython scripts\u002Fcdp_publish.py fill --title \"标题\" --content \"正文\" --images img.jpg --reuse-existing-tab\npython scripts\u002Fcdp_publish.py --host 10.0.0.12 --port 9222 fill --title \"标题\" --content \"正文\" --images img.jpg\n\n# 点击发布按钮\npython scripts\u002Fcdp_publish.py click-publish\n\n# 获取登录二维码（支持下划线别名：get_login_qrcode）\npython scripts\u002Fcdp_publish.py get-login-qrcode\n\n# 首页推荐列表（支持下划线别名：list_feeds）\npython scripts\u002Fcdp_publish.py list-feeds\n\n# 搜索笔记（支持下划线别名：search_feeds）\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\"\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\" --sort-by 最新 --note-type 图文\n\n# 获取笔记详情（支持下划线别名：get_feed_detail）\npython scripts\u002Fcdp_publish.py get-feed-detail --feed-id FEED_ID --xsec-token XSEC_TOKEN\npython scripts\u002Fcdp_publish.py get-feed-detail --feed-id FEED_ID --xsec-token XSEC_TOKEN --load-all-comments --limit 20 --click-more-replies --reply-limit 10 --scroll-speed normal\n\n# 发表评论（支持下划线别名：post_comment_to_feed）\npython scripts\u002Fcdp_publish.py post-comment-to-feed --feed-id FEED_ID --xsec-token XSEC_TOKEN --content \"评论内容\"\n\n# 回复评论（支持下划线别名：respond_comment）\npython scripts\u002Fcdp_publish.py respond-comment --feed-id FEED_ID --xsec-token XSEC_TOKEN --content \"回复内容\" [--comment-id COMMENT_ID]\n\n# 点赞\u002F取消点赞（支持下划线别名：note_upvote \u002F note_unvote）\npython scripts\u002Fcdp_publish.py note-upvote --feed-id FEED_ID --xsec-token XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unvote --feed-id FEED_ID --xsec-token XSEC_TOKEN\n\n# 收藏\u002F取消收藏（支持下划线别名：note_bookmark \u002F note_unbookmark）\npython scripts\u002Fcdp_publish.py note-bookmark --feed-id FEED_ID --xsec-token XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unbookmark --feed-id FEED_ID --xsec-token XSEC_TOKEN\n\n# 用户主页快照\u002F主页笔记（支持下划线别名：profile_snapshot \u002F notes_from_profile）\npython scripts\u002Fcdp_publish.py profile-snapshot --profile-url \"https:\u002F\u002Fwww.xiaohongshu.com\u002Fuser\u002Fprofile\u002FUSER_ID\"\npython scripts\u002Fcdp_publish.py notes-from-profile --user-id USER_ID --limit 20 --max-scrolls 3\n\n# 抓取通知评论接口（支持下划线别名：get_notification_mentions）\npython scripts\u002Fcdp_publish.py get-notification-mentions\n\n# 获取内容数据表（支持下划线别名：content_data）\npython scripts\u002Fcdp_publish.py content-data\npython scripts\u002Fcdp_publish.py content-data --csv-file \"\u002Fabs\u002Fpath\u002Fcontent_data.csv\"\n\n# 账号管理\npython scripts\u002Fcdp_publish.py login\npython scripts\u002Fcdp_publish.py list-accounts\npython scripts\u002Fcdp_publish.py add-account NAME [--alias ALIAS]\npython scripts\u002Fcdp_publish.py remove-account NAME [--delete-profile]\npython scripts\u002Fcdp_publish.py set-default-account NAME\npython scripts\u002Fcdp_publish.py switch-account\n```\n\n说明：`list-feeds`、`search-feeds`、`get-feed-detail`、`post-comment-to-feed`、`respond-comment`、`note-upvote`、`note-unvote`、`note-bookmark`、`note-unbookmark`、`profile-snapshot`、`notes-from-profile` 与 `get-notification-mentions` 会校验 `xiaohongshu.com` 主页登录态（非创作者中心登录态）。\n说明：登录态检查默认启用本地缓存（12 小时，仅缓存“已登录”结果），到期后自动重新走网页校验。\n说明：`get-login-qrcode` 返回 `qrcode_base64` \u002F `qrcode_data_url`，便于远程前端直接展示扫码。\n说明：`search-feeds` 输出新增 `recommended_keywords_count` 与 `recommended_keywords` 字段，表示输入关键词后回车前的下拉推荐词。\n说明：`get-feed-detail --load-all-comments` 额外返回 `comment_loading`，用于说明评论滚动加载结果。\n说明：`content-data` 会校验创作者中心登录态，并抓取 `statistics\u002Fdata-analysis` 页面中的笔记基础信息表。\n\n### chrome_launcher.py\n\nChrome 浏览器管理。\n\n```bash\n# 启动 Chrome\npython scripts\u002Fchrome_launcher.py\npython scripts\u002Fchrome_launcher.py --headless\n\n# 重启 Chrome\npython scripts\u002Fchrome_launcher.py --restart\n\n# 关闭 Chrome\npython scripts\u002Fchrome_launcher.py --kill\n```\n\n## 支持各种 Skill 工具\n\n本项目可作为 Claude Code、OpenCode 等支持 Skill 的工具使用，只需将项目复制到 `.claude\u002Fskills\u002Fpost-to-xhs\u002F` 目录，并添加 `SKILL.md` 文件即可。\n\n详见 [docs\u002Fclaude-code-integration.md](docs\u002Fclaude-code-integration.md)\n\n## 注意事项\n\n1. **仅供学习研究**：请遵守小红书平台规则，不要用于违规内容发布\n2. **登录安全**：Cookie 存储在本地 Chrome Profile 中，请勿泄露\n3. **选择器更新**：如果小红书页面结构变化导致发布失败，需要更新 `cdp_publish.py` 中的选择器\n4. feed 的图片类型\n- WB_PRV：预览图（preview），通常更轻、更快，适合列表卡片。\n  - WB_DFT：默认图（default），通常用于详情展示，质量\u002F尺寸更完整。\n\n## RoadMap\n- [x] 支持更多账号管理功能\n- [x] 支持发布功能\n- [x] 增加后台笔记获取功能\n- [x] 支持自动评论\n- [x] 支持素材检索功能\n- [x] 增加更多错误处理机制\n\n\n## 许可证\n\nMIT License\n\n## 联系方式\n\n微信号：`whitedewstory`\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwhite0dew_XiaohongshuSkills_readme_056761b57bc8.jpg\" alt=\"微信二维码\" width=\"240\" \u002F>\n\n### 知识星球，分享最新的使用技巧\n\u003Cimg src=\"20260302-141029.jpg\" alt=\"知识星球二维码\" width=\"240\" \u002F>\n\n## Stars\n[![Stargazers over time](https:\u002F\u002Fstarchart.cc\u002Fwhite0dew\u002FXiaohongshuSkills.svg?variant=adaptive)](https:\u002F\u002Fstarchart.cc\u002Fwhite0dew\u002FXiaohongshuSkills)\n\n## 致谢\n灵感来自：[Post-to-xhs](https:\u002F\u002Fgithub.com\u002FAngiin\u002FPost-to-xhs)\n","# RedBookSkills\n\n\n\n自动发布内容到小红书（Xiaohongshu\u002FRED）的命令行工具，也支持仅启动测试浏览器（不发布）。\n通过 Chrome DevTools Protocol (CDP) 实现自动化发布，支持多账号管理、无头模式运行、自动搜索素材与内容数据抓取等功能。\n\n## 功能特性\n- **自动化发布**：自动填写标题、正文、上传图片\n- **创作者中心兼容修复**：适配 2026 年 2-3 月发布页 DOM 变动（发布按钮、定时开关、日期输入、多图上传等待、正文编辑器）\n- **话题标签自动写入**：识别正文最后一行 `#标签`，然后逐渐写入\n- **多账号支持**：支持管理多个小红书账号，各账号 Cookie 隔离\n- **无头模式**：支持后台运行，无需显示浏览器窗口\n- **远程 CDP 支持**：可通过 `--host` \u002F `--port` 连接远程 Chrome 调试端口\n- **图片下载**：支持从 URL 自动下载图片，自动添加 Referer 绕过防盗链\n- **登录检测**：自动检测登录状态，未登录时自动切换到有窗口模式扫码\n- **登录二维码导出**：支持返回登录二维码 Base64 图片，便于远程前端展示扫码\n- **登录状态缓存**：`check_login\u002Fcheck_home_login` 默认本地缓存 12 小时，减少重复跳转校验\n- **首页推荐流抓取**：支持抓取首页推荐 feed 列表\n- **内容检索与详情读取**：支持搜索笔记并获取指定笔记详情（含评论数据），详情可选滚动加载更多评论\u002F回复\n- **笔记评论**：支持按 `feed_id + xsec_token` 对指定笔记发表一级评论\n- **评论回复**：支持按评论定位条件（评论 ID \u002F 作者 \u002F 文本片段）回复指定评论\n- **互动动作控制**：支持对指定笔记执行点赞\u002F取消点赞、收藏\u002F取消收藏\n- **用户页信息提取**：支持抓取用户主页快照与主页笔记列表\n- **通知评论抓取**：支持在 `\u002Fnotification` 页面抓取 `you\u002Fmentions` 接口返回\n- **内容数据看板抓取**：支持抓取“笔记基础信息”表（曝光\u002F观看\u002F点赞等）并导出 CSV\n\n## 安装\n\n### 环境要求\n\n- Python 3.10+\n- Google Chrome 浏览器\n- Windows 操作系统（目前仅测试 Windows）\n\n### 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n## 快速开始\n\n### 1. 首次登录\n\n```bash\npython scripts\u002Fcdp_publish.py login\n```\n\n在弹出的 Chrome 窗口中扫码登录小红书。\n\n说明：当前发布链路已按 2026 年 2-3 月的小红书创作者中心改版调整过选择器与等待策略；如果后续再次改版，优先检查 `scripts\u002Fcdp_publish.py` 中的 `SELECTORS`、多图上传等待和发布按钮点击逻辑。\n\n### 2. 启动\u002F测试浏览器（不发布）\n\n```bash\n# 启动测试浏览器（有窗口，推荐）\npython scripts\u002Fchrome_launcher.py\n\n# 无头启动测试浏览器\npython scripts\u002Fchrome_launcher.py --headless\n\n# 检查当前登录状态\npython scripts\u002Fcdp_publish.py check-login\n\n# 获取登录二维码（返回 Base64，可供远程前端直接展示）\npython scripts\u002Fcdp_publish.py get-login-qrcode\n\n# 可选：优先复用已有标签页（减少有窗口模式下切到前台）\npython scripts\u002Fcdp_publish.py check-login --reuse-existing-tab\n\n# 连接远程 CDP（Chrome 在另一台机器）\npython scripts\u002Fcdp_publish.py --host 10.0.0.12 --port 9222 check-login\n\n# 重启测试浏览器\npython scripts\u002Fchrome_launcher.py --restart\n\n# 关闭测试浏览器\npython scripts\u002Fchrome_launcher.py --kill\n```\n\n### 3. 发布内容\n\n```bash\n# 无头模式（推荐，默认自动发布）\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 有窗口预览模式（仅填充，不自动点发布）\npython scripts\u002Fpublish_pipeline.py \\\n    --preview \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 可选：优先复用已有标签页（减少有窗口模式下切到前台）\npython scripts\u002Fpublish_pipeline.py --reuse-existing-tab \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 连接远程 CDP 并发布（远程 Chrome 需已开启调试端口）\npython scripts\u002Fpublish_pipeline.py --host 10.0.0.12 --port 9222 \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 从文件读取内容\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title-file title.txt \\\n    --content-file content.txt \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n\n# 正文最后一行可放话题标签（最多 10 个）\n# 例如 content.txt 最后一行：\n# #春招 #26届 #校招 #求职 #找工作\n\n# 使用本地图片\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --images \"C:\\path\\to\\image.jpg\"\n\n# WSL\u002F远程 CDP + Windows\u002FUNC 路径可跳过本地文件预校验\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文\" \\\n    --images \"\\\\wsl.localhost\\Ubuntu\\home\\user\\image.jpg\" \\\n    --skip-file-check\n\n```\n\n### 4. 多账号管理\n\n```bash\n# 列出所有账号\npython scripts\u002Fcdp_publish.py list-accounts\n\n# 添加新账号\npython scripts\u002Fcdp_publish.py add-account myaccount --alias \"我的账号\"\n\n# 登录指定账号\npython scripts\u002Fcdp_publish.py --account myaccount login\n\n# 使用指定账号发布\npython scripts\u002Fpublish_pipeline.py --account myaccount --headless \\\n    --title \"标题\" --content \"正文\" --image-urls \"URL\"\n\n# 设置默认账号\npython scripts\u002Fcdp_publish.py set-default-account myaccount\n\n# 切换账号（清除当前登录，重新扫码）\npython scripts\u002Fcdp_publish.py switch-account\n```\n\n### 5. 搜索内容、查看笔记详情与互动操作\n\n```bash\n# 首页推荐列表\npython scripts\u002Fcdp_publish.py list-feeds\n\n# 搜索笔记（可选筛选）\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\"\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\" --sort-by 最新 --note-type 图文\n\n# 获取笔记详情（feed_id 与 xsec_token 可从搜索结果中获取）\npython scripts\u002Fcdp_publish.py get-feed-detail \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN\n\n# 可选：滚动加载更多一级评论，并尝试展开二级回复\npython scripts\u002Fcdp_publish.py get-feed-detail \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN \\\n    --load-all-comments \\\n    --limit 20 \\\n    --click-more-replies \\\n    --reply-limit 10 \\\n    --scroll-speed normal\n\n# 给笔记发表评论（一级评论）\npython scripts\u002Fcdp_publish.py post-comment-to-feed \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN \\\n    --content \"写得很实用，感谢分享！\"\n\n# 回复指定评论（可按评论ID \u002F 作者 \u002F 文本片段定位）\npython scripts\u002Fcdp_publish.py respond-comment \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN \\\n    --comment-id COMMENT_ID \\\n    --content \"感谢你的反馈～\"\n\n# 点赞 \u002F 取消点赞\npython scripts\u002Fcdp_publish.py note-upvote --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unvote --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\n\n# 收藏 \u002F 取消收藏\npython scripts\u002Fcdp_publish.py note-bookmark --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unbookmark --feed-id 67abc1234def567890123456 --xsec-token YOUR_XSEC_TOKEN\n\n# 用户主页快照 \u002F 用户主页笔记列表\npython scripts\u002Fcdp_publish.py profile-snapshot --user-id USER_ID\npython scripts\u002Fcdp_publish.py notes-from-profile --user-id USER_ID --limit 20 --max-scrolls 3\n\n# 抓取“评论和@”通知接口（you\u002Fmentions）\npython scripts\u002Fcdp_publish.py get-notification-mentions\n```\n\n说明：`list-feeds` 返回首页推荐 feed 列表；`search-feeds` 会先在搜索框输入关键词，抓取下拉推荐词（`recommended_keywords`），再回车拉取 feed 列表。\n说明：`get-feed-detail --load-all-comments` 会在详情页滚动评论区，并可选点击“更多回复”后再提取 `window.__INITIAL_STATE__`。\n\n### 6. 获取内容数据表（content_data）\n\n```bash\n# 抓取“笔记基础信息”数据表\npython scripts\u002Fcdp_publish.py content-data\n\n# 下划线别名\npython scripts\u002Fcdp_publish.py content_data\n\n# 导出 CSV\npython scripts\u002Fcdp_publish.py content-data --csv-file \"\u002Fabs\u002Fpath\u002Fcontent_data.csv\"\n```\n\n## 命令参考\n\n### 话题标签（publish_pipeline.py）\n\n- 从正文中提取规则：若“最后一个非空行”全部由 `#标签` 组成，则提取为话题标签并从正文移除。\n- 标签输入策略：逐个输入 `#标签`，等待 `3` 秒，再发送 `Enter` 进行确认。\n- 建议数量：`1-10` 个标签；超过平台限制时请手动精简。\n- 示例（正文最后一行）：`#春招 #26届 #校招 #春招规划 #面试`\n\n### publish_pipeline.py\n\n统一发布入口，一条命令完成全部流程。\n\n```bash\npython scripts\u002Fpublish_pipeline.py [选项]\n\n选项:\n  --title TEXT           文章标题\n  --title-file FILE      从文件读取标题\n  --content TEXT         文章正文\n  --content-file FILE    从文件读取正文\n  --image-urls URL...    图片 URL 列表\n  --images FILE...       本地图片文件列表\n  --skip-file-check      跳过本地媒体文件存在性检查（WSL\u002F远程 CDP\u002FUNC 路径可用）\n  --preserve-upload-paths 强制保留原始上传路径，不将反斜杠转换为正斜杠\n  --host HOST            CDP 主机地址（默认 127.0.0.1）\n  --port PORT            CDP 端口（默认 9222）\n  --headless             无头模式（无浏览器窗口）\n  --reuse-existing-tab   优先复用已有标签页（默认关闭）\n  --account NAME         指定账号\n  --auto-publish         兼容参数：默认已自动发布（可省略）\n  --preview              预览模式：仅填充内容，不点击发布\n```\n\n说明：启用 `--reuse-existing-tab` 后，发布流程仍会自动导航到发布页，因此会刷新到目标页面再继续执行。\n说明：当 `--host` 非 `127.0.0.1\u002Flocalhost` 时为远程模式，会跳过本地 `chrome_launcher.py` 的自动启动\u002F重启逻辑，请确保远程 CDP 地址可达。\n说明：当控制端运行在 WSL、但媒体路径使用 Windows\u002FUNC（如 `\\\\wsl.localhost\\...`）时，可加 `--skip-file-check` 跳过 Linux 侧 `isfile` 预校验。\n说明：脚本现在会自动识别 `C:\\...`、`\\\\wsl.localhost\\...` 等 Windows\u002FUNC 路径，并在传给 `DOM.setFileInputFiles` 时保留原始形态。\n说明：若仍想强制关闭路径改写，可显式加 `--preserve-upload-paths`。\n说明：`publish_pipeline.py` 默认会自动点击发布；如需人工确认，请显式加 `--preview`。\n\n### cdp_publish.py\n\n底层发布控制，支持分步操作。\n\n```bash\n# 检查登录状态\npython scripts\u002Fcdp_publish.py check-login\npython scripts\u002Fcdp_publish.py check-login --reuse-existing-tab\npython scripts\u002Fcdp_publish.py --host 10.0.0.12 --port 9222 check-login\n\n# 填写表单（不发布）\npython scripts\u002Fcdp_publish.py fill --title \"标题\" --content \"正文\" --images img.jpg\npython scripts\u002Fcdp_publish.py fill --title \"标题\" --content \"正文\" --images img.jpg --reuse-existing-tab\npython scripts\u002Fcdp_publish.py --host 10.0.0.12 --port 9222 fill --title \"标题\" --content \"正文\" --images img.jpg\n\n# 点击发布按钮\npython scripts\u002Fcdp_publish.py click-publish\n\n# 获取登录二维码（支持下划线别名：get_login_qrcode）\npython scripts\u002Fcdp_publish.py get-login-qrcode\n\n# 首页推荐列表（支持下划线别名：list_feeds）\npython scripts\u002Fcdp_publish.py list-feeds\n\n# 搜索笔记（支持下划线别名：search_feeds）\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\"\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\" --sort-by 最新 --note-type 图文\n\n# 获取笔记详情（支持下划线别名：get_feed_detail）\npython scripts\u002Fcdp_publish.py get-feed-detail --feed-id FEED_ID --xsec-token XSEC_TOKEN\npython scripts\u002Fcdp_publish.py get-feed-detail --feed-id FEED_ID --xsec-token XSEC_TOKEN --load-all-comments --limit 20 --click-more-replies --reply-limit 10 --scroll-speed normal\n\n# 发表评论（支持下划线别名：post_comment_to_feed）\npython scripts\u002Fcdp_publish.py post-comment-to-feed --feed-id FEED_ID --xsec-token XSEC_TOKEN --content \"评论内容\"\n\n# 回复评论（支持下划线别名：respond_comment）\npython scripts\u002Fcdp_publish.py respond-comment --feed-id FEED_ID --xsec-token XSEC_TOKEN --content \"回复内容\" [--comment-id COMMENT_ID]\n\n# 点赞\u002F取消点赞（支持下划线别名：note_upvote \u002F note_unvote）\npython scripts\u002Fcdp_publish.py note-upvote --feed-id FEED_ID --xsec-token XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unvote --feed-id FEED_ID --xsec-token XSEC_TOKEN\n\n# 收藏\u002F取消收藏（支持下划线别名：note_bookmark \u002F note_unbookmark）\npython scripts\u002Fcdp_publish.py note-bookmark --feed-id FEED_ID --xsec-token XSEC_TOKEN\npython scripts\u002Fcdp_publish.py note-unbookmark --feed-id FEED_ID --xsec-token XSEC_TOKEN\n\n# 用户主页快照\u002F主页笔记（支持下划线别名：profile_snapshot \u002F notes_from_profile）\npython scripts\u002Fcdp_publish.py profile-snapshot --profile-url \"https:\u002F\u002Fwww.xiaohongshu.com\u002Fuser\u002Fprofile\u002FUSER_ID\"\npython scripts\u002Fcdp_publish.py notes-from-profile --user-id USER_ID --limit 20 --max-scrolls 3\n\n# 抓取通知评论接口（支持下划线别名：get_notification_mentions）\npython scripts\u002Fcdp_publish.py get-notification-mentions\n\n# 获取内容数据表（支持下划线别名：content_data）\npython scripts\u002Fcdp_publish.py content-data\npython scripts\u002Fcdp_publish.py content-data --csv-file \"\u002Fabs\u002Fpath\u002Fcontent_data.csv\"\n\n# 账号管理\npython scripts\u002Fcdp_publish.py login\npython scripts\u002Fcdp_publish.py list-accounts\npython scripts\u002Fcdp_publish.py add-account NAME [--alias ALIAS]\npython scripts\u002Fcdp_publish.py remove-account NAME [--delete-profile]\npython scripts\u002Fcdp_publish.py set-default-account NAME\npython scripts\u002Fcdp_publish.py switch-account\n```\n\n说明：`list-feeds`、`search-feeds`、`get-feed-detail`、`post-comment-to-feed`、`respond-comment`、`note-upvote`、`note-unvote`、`note-bookmark`、`note-unbookmark`、`profile-snapshot`、`notes-from-profile` 与 `get-notification-mentions` 会校验 `xiaohongshu.com` 主页登录态（非创作者中心登录态）。\n说明：登录态检查默认启用本地缓存（12 小时，仅缓存“已登录”结果），到期后自动重新走网页校验。\n说明：`get-login-qrcode` 返回 `qrcode_base64` \u002F `qrcode_data_url`，便于远程前端直接展示扫码。\n说明：`search-feeds` 输出新增 `recommended_keywords_count` 与 `recommended_keywords` 字段，表示输入关键词后回车前的下拉推荐词。\n说明：`get-feed-detail --load-all-comments` 额外返回 `comment_loading`，用于说明评论滚动加载结果。\n说明：`content-data` 会校验创作者中心登录态，并抓取 `statistics\u002Fdata-analysis` 页面中的笔记基础信息表。\n\n### chrome_launcher.py\n\nChrome 浏览器管理。\n\n```bash\n# 启动 Chrome\npython scripts\u002Fchrome_launcher.py\npython scripts\u002Fchrome_launcher.py --headless\n\n# 重启 Chrome\npython scripts\u002Fchrome_launcher.py --restart\n\n# 关闭 Chrome\npython scripts\u002Fchrome_launcher.py --kill\n```\n\n## 支持各种 Skill 工具\n\n本项目可作为 Claude Code、OpenCode 等支持 Skill 的工具使用，只需将项目复制到 `.claude\u002Fskills\u002Fpost-to-xhs\u002F` 目录，并添加 `SKILL.md` 文件即可。\n\n详见 [docs\u002Fclaude-code-integration.md](docs\u002Fclaude-code-integration.md)\n\n## 注意事项\n\n1. **仅供学习研究**：请遵守小红书平台规则，不要用于违规内容发布\n2. **登录安全**：Cookie 存储在本地 Chrome Profile 中，请勿泄露\n3. **选择器更新**：如果小红书页面结构变化导致发布失败，需要更新 `cdp_publish.py` 中的选择器\n4. feed 的图片类型\n- WB_PRV：预览图（preview），通常更轻、更快，适合列表卡片。\n  - WB_DFT：默认图（default），通常用于详情展示，质量\u002F尺寸更完整。\n\n## RoadMap\n- [x] 支持更多账号管理功能\n- [x] 支持发布功能\n- [x] 增加后台笔记获取功能\n- [x] 支持自动评论\n- [x] 支持素材检索功能\n- [x] 增加更多错误处理机制\n\n\n## 许可证\n\nMIT License\n\n## 联系方式\n\n微信号：`whitedewstory`\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwhite0dew_XiaohongshuSkills_readme_056761b57bc8.jpg\" alt=\"微信二维码\" width=\"240\" \u002F>\n\n### 知识星球，分享最新的使用技巧\n\u003Cimg src=\"20260302-141029.jpg\" alt=\"知识星球二维码\" width=\"240\" \u002F>\n\n## Stars\n[![Stargazers over time](https:\u002F\u002Fstarchart.cc\u002Fwhite0dew\u002FXiaohongshuSkills.svg?variant=adaptive)](https:\u002F\u002Fstarchart.cc\u002Fwhite0dew\u002FXiaohongshuSkills)\n\n## 致谢\n灵感来自：[Post-to-xhs](https:\u002F\u002Fgithub.com\u002FAngiin\u002FPost-to-xhs)","# XiaohongshuSkills 快速上手指南\n\nXiaohongshuSkills 是一个基于 Chrome DevTools Protocol (CDP) 的命令行工具，用于自动化发布内容到小红书，支持多账号管理、无头模式运行、数据抓取及互动操作。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows（目前仅在此平台测试通过）\n*   **Python 版本**：3.10 或更高版本\n*   **浏览器**：已安装 Google Chrome 浏览器\n\n## 安装步骤\n\n1.  **克隆项目**（假设您已获取源码）\n2.  **安装依赖**\n\n    在项目根目录下执行以下命令安装所需的 Python 库：\n\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n## 基本使用\n\n### 1. 首次登录与账号配置\n\n首次使用前，需要扫码登录以保存 Cookie 状态。\n\n```bash\n# 启动登录流程，弹出 Chrome 窗口供扫码\npython scripts\u002Fcdp_publish.py login\n```\n\n*   **提示**：登录状态默认本地缓存 12 小时。如需查看当前登录状态，可运行 `python scripts\u002Fcdp_publish.py check-login`。\n\n### 2. 发布笔记\n\n使用 `publish_pipeline.py` 脚本进行内容发布。支持标题、正文、图片 URL 或本地路径。\n\n**示例：无头模式自动发布（推荐）**\n\n```bash\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文内容\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n```\n\n**示例：使用本地图片并发布**\n\n```bash\npython scripts\u002Fpublish_pipeline.py --headless \\\n    --title \"文章标题\" \\\n    --content \"文章正文内容\" \\\n    --images \"C:\\path\\to\\image.jpg\"\n```\n\n**示例：预览模式（仅填充表单，不点击发布）**\n\n```bash\npython scripts\u002Fpublish_pipeline.py \\\n    --preview \\\n    --title \"文章标题\" \\\n    --content \"文章正文内容\" \\\n    --image-urls \"https:\u002F\u002Fexample.com\u002Fimage.jpg\"\n```\n\n> **注意**：若正文最后一行包含 `#标签` 格式的内容（如 `#春招 #求职`），工具会自动识别并将其填入话题标签栏。\n\n### 3. 多账号管理\n\n工具支持隔离管理多个小红书账号。\n\n```bash\n# 添加新账号\npython scripts\u002Fcdp_publish.py add-account myaccount --alias \"我的备用号\"\n\n# 切换并使用指定账号登录\npython scripts\u002Fcdp_publish.py --account myaccount login\n\n# 使用指定账号发布\npython scripts\u002Fpublish_pipeline.py --account myaccount --headless \\\n    --title \"标题\" --content \"正文\" --image-urls \"URL\"\n\n# 列出所有已保存的账号\npython scripts\u002Fcdp_publish.py list-accounts\n```\n\n### 4. 数据抓取与互动（进阶）\n\n除了发布，您还可以利用工具进行内容检索和互动。\n\n```bash\n# 搜索笔记\npython scripts\u002Fcdp_publish.py search-feeds --keyword \"春招\"\n\n# 获取笔记详情（需 feed_id 和 xsec_token）\npython scripts\u002Fcdp_publish.py get-feed-detail \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN\n\n# 对笔记点赞\npython scripts\u002Fcdp_publish.py note-upvote \\\n    --feed-id 67abc1234def567890123456 \\\n    --xsec-token YOUR_XSEC_TOKEN\n\n# 导出创作者中心数据看板为 CSV\npython scripts\u002Fcdp_publish.py content-data --csv-file \".\u002Fdata.csv\"\n```\n\n## 注意事项\n\n*   **合规使用**：本工具仅供学习与技术研究，请严格遵守小红书平台规则，禁止用于违规内容发布或恶意刷量。\n*   **页面变动适配**：由于小红书前端页面可能更新，若发布失败，请检查 `scripts\u002Fcdp_publish.py` 中的 `SELECTORS` 是否需要更新。\n*   **远程调试**：支持通过 `--host` 和 `--port` 参数连接远程 Chrome 调试端口，适用于服务器端无头运行场景。","某电商运营团队需每日在小红书矩阵账号上发布 20+ 篇“春季穿搭”种草笔记，并实时监控竞品动态以调整营销策略。\n\n### 没有 XiaohongshuSkills 时\n- **人工操作繁琐低效**：运营人员需手动登录多个账号，逐个复制标题、正文并上传图片，单篇笔记耗时约 15 分钟，极易因重复劳动产生疲劳错误。\n- **多账号管理混乱**：频繁切换账号导致 Cookie 失效或登录状态丢失，需反复扫码验证，且容易误操作发错账号，造成品牌形象混淆。\n- **数据抓取滞后**：手动搜索竞品关键词、记录爆款笔记的点赞评论数据效率极低，无法及时获取实时反馈，导致营销决策缺乏数据支撑。\n- **互动响应迟缓**：难以及时发现并回复用户评论或提及（Mentions），错失黄金互动窗口，影响账号权重和用户粘性。\n\n### 使用 XiaohongshuSkills 后\n- **自动化批量发布**：通过命令行一键调用 `publish_pipeline.py`，支持无头模式后台运行，自动填充内容、处理话题标签及多图上传，将单篇发布耗时缩短至秒级，实现全天候无人值守发布。\n- **隔离式多账号管控**：利用内置的多账号管理功能，各账号 Cookie 独立缓存与隔离，支持通过 `--account` 参数精准指定发布目标，彻底杜绝串号风险，无需重复扫码登录。\n- **实时数据洞察**：借助 `search-feeds` 和详情抓取功能，自动检索竞品笔记并导出曝光、点赞等核心指标至 CSV，为选题优化提供即时、准确的数据依据。\n- **智能互动维护**：自动监听通知页面的提及与评论，结合自动化回复脚本，确保对用户互动的快速响应，显著提升粉丝活跃度与账号健康度。\n\nXiaohongshuSkills 将原本耗时耗力的人工运营流程转化为标准化的自动化流水线，极大提升了内容分发效率与数据驱动决策能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwhite0dew_XiaohongshuSkills_abff9d87.png","white0dew","青玉白露","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fwhite0dew_8c6671ff.png","A Software engineer.\r\n wechat 【二进制的耳语】",null,"Chengdu Sichuan.","https:\u002F\u002Fgithub.com\u002Fwhite0dew",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,2361,242,"2026-04-02T23:03:33","MIT","Windows","未说明",{"notes":95,"python":96,"dependencies":97},"需要安装 Google Chrome 浏览器。目前仅在 Windows 操作系统上经过测试。通过 Chrome DevTools Protocol (CDP) 实现自动化，支持无头模式及远程 CDP 连接。","3.10+",[93],[15,45],"2026-03-27T02:49:30.150509","2026-04-06T08:46:51.091109",[102,107,112,117,122,126],{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},11351,"支持 OpenClaw 吗？如何获取？","目前已经支持 OpenClaw。维护者已将其发布到 https:\u002F\u002Fclawhub.ai\u002F ，用户可以直接在该平台获取和使用。","https:\u002F\u002Fgithub.com\u002Fwhite0dew\u002FXiaohongshuSkills\u002Fissues\u002F2",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},11352,"为什么点击发布按钮没有反应或无法发送帖子？","这通常是因为小红书更新了页面结构，导致自动化脚本中的选择器失效或无法触发点击事件。如果遇到能填写内容但无法点击发布的情况，请检查并更新到最新版本，维护者通常会针对页面变动进行修复。","https:\u002F\u002Fgithub.com\u002Fwhite0dew\u002FXiaohongshuSkills\u002Fissues\u002F8",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},11353,"在 WSL (Linux) 环境下运行脚本时，为什么会在填写标题步骤卡住或报错？","这通常是由于 WSL 和 Windows 之间的环境隔离导致文件路径不一致。如果文件位于 WSL 中（如 `\u002Fhome`），而 Chrome 运行在 Windows 上，需要将路径转换为 Windows 可识别的格式（例如将 `\u002Fhome` 转换为 `\u002F\u002Fwsl\u002FUbuntu\u002Fhome`）。建议在处理路径时让 AI 进行特殊转换处理。","https:\u002F\u002Fgithub.com\u002Fwhite0dew\u002FXiaohongshuSkills\u002Fissues\u002F4",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},11354,"该工具支持哪些操作系统？Ubuntu\u002FLinux 下可以使用吗？","根据社区反馈，该工具主要设计用于 Windows 环境。虽然有用户在 Ubuntu 上尝试使用，但可能会遇到 API 被拒或遮罩系统拦截等问题，稳定性不如 Windows。建议优先在 Windows 环境下使用。","https:\u002F\u002Fgithub.com\u002Fwhite0dew\u002FXiaohongshuSkills\u002Fissues\u002F10",{"id":123,"question_zh":124,"answer_zh":125,"source_url":111},11355,"发布流程卡在最后一步，浏览器打开了且内容已填好，但未自动点击发布，怎么办？","这种情况多由小红书前端页面更新引起。请确认你使用的是最新版本的脚本。如果问题依旧，可能是新的反爬机制（如遮罩层）拦截了自动化操作，需等待维护者更新适配新页面的版本。",{"id":127,"question_zh":128,"answer_zh":129,"source_url":116},11356,"使用 CDP 发布图片笔记时，上传成功后进程挂起无响应，可能的原因是什么？","如果在 WSL 调用 Windows Chrome 的场景下出现此问题，主要原因是路径映射错误。确保传递给 Chrome 的文件路径是 Windows 格式（如 `\u002F\u002Fwsl$\u002F...`）。此外，也可能是因为页面 DOM 更新导致选择器不匹配，或模态框\u002F遮罩层干扰了编辑器就绪状态检测。",[]]