autoUpload/docs/xhs_note_uploader_quickstart.md

307 lines
7.4 KiB
Markdown
Raw Normal View History

# 小红书笔记上传器 - 快速开始指南
## 🚀 5分钟上手
### 第一步:安装依赖
```bash
cd /Users/yarrow/autoUpload
pip install -r requirements.txt
playwright install chromium
```
### 第二步获取Cookie
```python
python examples/get_xiaohongshu_cookie.py
```
扫码登录后Cookie会自动保存到 `cookies/xiaohongshu_note/account.json`
### 第三步:上传图文笔记
```python
import asyncio
from pathlib import Path
from uploader.xhs_note_uploader import XiaoHongShuImageNote
async def main():
note = XiaoHongShuImageNote(
title="我的第一条笔记✨",
content="测试上传功能~",
tags=["测试", "分享"],
image_paths=["videos/demo.png"],
publish_date=0, # 0=立即发布
account_file="cookies/xiaohongshu_note/account.json",
headless=False # 有头模式,可以看到浏览器操作
)
await note.main()
asyncio.run(main())
```
---
## 📋 核心参数说明
| 参数 | 说明 | 示例 |
|------|------|------|
| `title` | 标题最多30字 | `"今天的下午茶☕️"` |
| `content` | 正文最多1000字 | `"分享一下..."` |
| `tags` | 话题标签建议≤3个 | `["下午茶", "咖啡"]` |
| `image_paths` | 图片列表1-9张 | `["1.jpg", "2.jpg"]` |
| `publish_date` | 发布时间 | `0`(立即)或`datetime`(定时) |
| `account_file` | Cookie路径 | `"cookies/account.json"` |
| `location` | 地点(可选) | `"上海市·静安区"` |
| `headless` | 无头模式 | `False`(推荐有头) |
---
## 📝 完整示例
### 示例1立即发布单图
```python
import asyncio
from uploader.xhs_note_uploader import XiaoHongShuImageNote
async def upload_single_image():
note = XiaoHongShuImageNote(
title="早安☀️",
content="新的一天开始啦~",
tags=["早安", "日常"],
image_paths=["morning.jpg"],
publish_date=0,
account_file="cookies/xiaohongshu_note/account.json",
headless=False
)
await note.main()
asyncio.run(upload_single_image())
```
### 示例2立即发布多图
```python
import asyncio
from uploader.xhs_note_uploader import XiaoHongShuImageNote
async def upload_multiple_images():
note = XiaoHongShuImageNote(
title="今日穿搭分享👗",
content="给大家分享一下今天的穿搭~\n简约又时尚",
tags=["穿搭", "时尚", "OOTD"],
image_paths=["look1.jpg", "look2.jpg", "look3.jpg"],
publish_date=0,
account_file="cookies/xiaohongshu_note/account.json",
location="北京市·朝阳区",
headless=False
)
await note.main()
asyncio.run(upload_multiple_images())
```
### 示例3定时发布
```python
import asyncio
from datetime import datetime, timedelta
from uploader.xhs_note_uploader import XiaoHongShuImageNote
async def upload_scheduled():
# 明天上午10点发布
tomorrow_10am = datetime.now() + timedelta(days=1)
tomorrow_10am = tomorrow_10am.replace(hour=10, minute=0, second=0)
note = XiaoHongShuImageNote(
title="明日预告📢",
content="明天10点见",
tags=["预告", "明天见"],
image_paths=["preview.jpg"],
publish_date=tomorrow_10am, # 定时发布
account_file="cookies/xiaohongshu_note/account.json",
headless=False
)
await note.main()
asyncio.run(upload_scheduled())
```
### 示例4批量上传安全间隔
```python
import asyncio
import random
from uploader.xhs_note_uploader import XiaoHongShuImageNote
async def batch_upload():
notes_data = [
{
"title": "笔记1",
"content": "内容1",
"tags": ["标签1"],
"images": ["1.jpg"],
},
{
"title": "笔记2",
"content": "内容2",
"tags": ["标签2"],
"images": ["2.jpg"],
},
]
for i, data in enumerate(notes_data):
print(f"\n上传第 {i+1}/{len(notes_data)} 条笔记...")
note = XiaoHongShuImageNote(
title=data["title"],
content=data["content"],
tags=data["tags"],
image_paths=data["images"],
publish_date=0,
account_file="cookies/xiaohongshu_note/account.json",
headless=False
)
await note.main()
# 间隔10-15分钟
if i < len(notes_data) - 1:
wait_min = random.randint(10, 15)
print(f"⏰ 等待 {wait_min} 分钟...")
await asyncio.sleep(wait_min * 60)
asyncio.run(batch_upload())
```
---
## ⚙️ 优化后的新特性
### 1. 批量图片上传
```python
# 一次性上传多张图片(更快!)
image_paths=["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"]
```
### 2. 精准元素定位
```python
# 使用优化后的选择器,定位成功率 95%+
# 自动适配小红书最新页面结构
```
### 3. 智能等待机制
```python
# 自动等待图片预览加载完成
# 显示实时进度:已加载 3/5 张图片
```
### 4. 人类化输入
```python
# 三种速度模式:
# - 标题80-150ms/字符
# - 正文100-200ms/字符
# - 标签500-800ms/字符(极慢,防检测)
```
---
## 🛡️ 安全建议
### ✅ 推荐配置
```python
{
'headless': False, # 有头模式
'tags_limit': 3, # 最多3个标签
'upload_interval': 600, # 间隔10分钟
'max_notes_per_day': 5, # 每天最多5条
}
```
### ❌ 不推荐配置
```python
{
'headless': True, # 无头模式不稳定
'upload_interval': 60, # 间隔太短
'max_notes_per_day': 20, # 数量太多,易触发风控
}
```
---
## 🐛 常见问题
### Q1: 找不到上传元素?
**A**: 使用有头模式检查页面是否正确加载
```python
headless=False # 设置为False观察浏览器
```
### Q2: Cookie失效
**A**: 重新获取Cookie
```python
from uploader.xhs_note_uploader.main import xiaohongshu_note_cookie_gen
await xiaohongshu_note_cookie_gen("cookies/account.json")
```
### Q3: 标签输入无效?
**A**:
- 减少标签数量≤3个
- 使用简短标签文字
- 确保标签不包含特殊字符
### Q4: 图片上传慢?
**A**:
- 优化图片大小(建议<5MB
- 使用常见格式(.jpg, .png
- 检查网络连接
---
## 📖 更多资源
- **详细文档**: `docs/xhs_note_uploader_optimization.md`
- **设计文档**: `docs/xhs_note_uploader_design.md`
- **完整示例**: `examples/upload_note_to_xiaohongshu_image.py`
- **测试脚本**: `examples/test_xhs_note_uploader.py`
---
## 🎯 下一步
1. **测试上传**: 运行测试脚本验证功能
```bash
python examples/test_xhs_note_uploader.py
```
2. **查看日志**: 检查上传详细日志
```bash
# 日志包含每个步骤的执行情况
```
3. **优化内容**: 根据需求调整标题、正文、标签
```python
# 真实、有价值的内容更容易获得推荐
```
4. **定期维护**: 定期手动登录维持账号活跃度
```python
# 建议每周至少手动登录一次
```
---
## 💡 专业提示
1. **图片质量**: 使用高质量、原创图片
2. **文案优化**: 标题要吸引人,正文要真诚
3. **标签选择**: 选择精准、热门的话题标签
4. **发布时间**: 选择用户活跃时段早8点、午12点、晚8点
5. **互动维护**: 及时回复评论,提高互动率
---
**祝你使用愉快!** 🎉