2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00
2025-11-07 15:04:47 +08:00

小红书笔记发布工具

一个简单易用的小红书图文/视频笔记自动发布工具,支持自动登录、内容填充、标签添加、定时发布等功能。

特性

  • 📸 图文笔记发布支持1-9张图片
  • 🎬 视频笔记发布:支持视频笔记上传
  • 🔐 自动登录扫码登录一次自动保存Cookie
  • 🏷️ 智能标签:自动添加话题标签
  • 定时发布:支持设置发布时间
  • 🤖 人类化操作:模拟真实用户行为,降低风控风险
  • 🚀 简单易用:几行代码即可完成发布

📦 安装

1. 环境要求

  • Python 3.11+
  • macOS / Windows / Linux

2. 安装依赖

# 克隆或下载项目
cd xiaohongshu_note_publisher

# 安装Python依赖
pip install playwright loguru

# 安装浏览器驱动
playwright install chromium

🚀 快速开始

发布图文笔记

import asyncio
from publisher import XiaoHongShuImageNote

async def main():
    # 创建图文笔记上传器
    note = XiaoHongShuImageNote(
        title="周末去哪玩 ✨",
        content="今天天气真好,推荐大家去公园走走~",
        tags=["#广州", "#周末", "#出游"],
        image_paths=["photo1.jpg", "photo2.jpg"],
        publish_date=0,  # 0表示立即发布
        account_file="cookies/account.json"
    )
    
    # 执行发布
    await note.main()
    print("✅ 发布成功!")

if __name__ == "__main__":
    asyncio.run(main())

发布视频笔记

import asyncio
from publisher import XiaoHongShuVideoNote

async def main():
    # 创建视频笔记上传器
    note = XiaoHongShuVideoNote(
        title="分享日常 vlog",
        content="今天的生活记录~",
        tags=["#vlog", "#日常"],
        video_path="my_video.mp4",
        publish_date=0,
        account_file="cookies/account.json"
    )
    
    await note.main()
    print("✅ 发布成功!")

if __name__ == "__main__":
    asyncio.run(main())

📖 详细使用

参数说明

XiaoHongShuImageNote图文笔记

参数 类型 必填 说明 示例
title str 笔记标题最多30字 "周末去哪玩"
content str 笔记正文最多1000字 "今天天气真好..."
tags List[str] 话题标签最多3个 ["#广州", "#周末"]
image_paths List[str] 图片路径列表1-9张 ["1.jpg", "2.jpg"]
publish_date int/datetime 发布时间0表示立即发布 0 或 datetime对象
account_file str Cookie文件路径 "cookies/account.json"
location str 地理位置 "广州塔"
cover_index int 封面图索引0-8 0
filter_name str 滤镜名称 "自然"
headless bool 是否无头模式 False

XiaoHongShuVideoNote视频笔记

参数 类型 必填 说明
title str 笔记标题
content str 笔记正文
tags List[str] 话题标签
video_path str 视频文件路径
publish_date int/datetime 发布时间
account_file str Cookie文件路径
location str 地理位置
headless bool 是否无头模式

定时发布示例

from datetime import datetime, timedelta

# 设置明天下午3点发布
tomorrow_3pm = datetime.now() + timedelta(days=1)
tomorrow_3pm = tomorrow_3pm.replace(hour=15, minute=0, second=0)

note = XiaoHongShuImageNote(
    title="明天见~",
    content="提前准备好的内容",
    tags=["#生活"],
    image_paths=["photo.jpg"],
    publish_date=tomorrow_3pm,  # 使用datetime对象
    account_file="cookies/account.json"
)

添加地理位置

note = XiaoHongShuImageNote(
    title="打卡广州塔",
    content="来广州必打卡的地标!",
    tags=["#广州", "#旅行"],
    image_paths=["guangzhou_tower.jpg"],
    publish_date=0,
    account_file="cookies/account.json",
    location="广州塔"  # 添加地理位置
)

🔐 首次使用获取Cookie

第一次运行时,工具会自动打开浏览器:

  1. 🖥️ 浏览器自动打开小红书登录页面
  2. 📱 使用小红书App扫描二维码登录
  3. 登录成功后Cookie自动保存
  4. 🎉 下次使用直接读取Cookie无需重复登录
# 首次运行会自动打开浏览器让你扫码
# Cookie会保存到指定路径
await note.main()  # 自动处理登录流程

📁 项目结构

xiaohongshu_note_publisher/
├── README.md              # 本文件
├── publisher.py           # 主程序
├── utils.py              # 工具函数
├── requirements.txt      # 依赖列表
├── example_image.py      # 图文笔记示例
├── example_video.py      # 视频笔记示例
├── quick_test.py         # 快速测试脚本
└── cookies/              # Cookie存储目录
    └── account.json

🔍 常见问题

1. Cookie失效怎么办

删除Cookie文件重新运行程序会自动打开浏览器让你重新登录

rm cookies/account.json
python example_image.py  # 重新运行

2. 上传失败怎么办?

  • 检查网络连接
  • 确认Cookie有效
  • 查看错误截图(自动保存)
  • 确认图片/视频文件存在

3. 如何批量发布?

import asyncio
from publisher import XiaoHongShuImageNote

async def batch_publish():
    posts = [
        {"title": "标题1", "images": ["1.jpg"], "tags": ["#tag1"]},
        {"title": "标题2", "images": ["2.jpg"], "tags": ["#tag2"]},
    ]
    
    for post in posts:
        note = XiaoHongShuImageNote(
            title=post["title"],
            content=post["title"],
            tags=post["tags"],
            image_paths=post["images"],
            publish_date=0,
            account_file="cookies/account.json"
        )
        await note.main()
        await asyncio.sleep(30)  # 每次发布间隔30秒避免风控

asyncio.run(batch_publish())

4. 支持多账号吗?

支持为每个账号准备不同的Cookie文件

# 账号1
note1 = XiaoHongShuImageNote(
    ...,
    account_file="cookies/account1.json"
)

# 账号2
note2 = XiaoHongShuImageNote(
    ...,
    account_file="cookies/account2.json"
)

⚠️ 注意事项

  1. 发布频率建议每次发布间隔30秒以上避免触发平台风控
  2. 内容质量:确保发布内容符合小红书社区规范
  3. 图片要求支持jpg、png格式建议分辨率1080x1080以上
  4. 视频要求支持mp4格式建议1080P以上
  5. Cookie安全妥善保管Cookie文件不要泄露给他人

🛠️ 高级功能

使用有头模式(推荐新手)

note = XiaoHongShuImageNote(
    ...,
    headless=False  # 可以看到浏览器操作过程
)

自定义封面

note = XiaoHongShuImageNote(
    ...,
    image_paths=["img1.jpg", "img2.jpg", "img3.jpg"],
    cover_index=1  # 使用第2张图片作为封面索引从0开始
)

📝 更新日志

v1.0.0 (2025-11-07)

  • 首次发布
  • 📸 支持图文笔记发布
  • 🎬 支持视频笔记发布
  • 🔐 自动Cookie管理
  • 支持定时发布
  • 🤖 人类化操作

📄 许可

MIT License

🤝 贡献

欢迎提交Issue和Pull Request

💬 联系方式

如有问题欢迎通过Issue联系。


快速开始: 运行 python quick_test.py 立即体验!

Description
No description provided
Readme 44 KiB
Languages
Python 100%