autoUpload/docs/xhs_note_uploader_quickstart.md

307 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 小红书笔记上传器 - 快速开始指南
## 🚀 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. **互动维护**: 及时回复评论提高互动率
---
**祝你使用愉快!** 🎉