autoUpload/docs/xiaohongshu_improvements_summary.md

3.9 KiB
Raw Blame History

小红书上传器改进总结

问题背景

用户在使用小红书上传器时遇到两个主要问题:

  1. 无头模式下找不到上传元素 - 导致文件上传失败
  2. 有头模式下突然跳转到登录页面 - 说明反自动化检测被触发

解决方案概述

1. 登录状态检测与处理

新增功能

  • check_and_handle_login_status() - 智能检测登录状态
  • handle_login_redirect() - 处理登录重定向问题

检测逻辑

# 检测登录状态指示器
login_indicators = [
    # 已登录元素
    '.user-info', '.avatar', '.username', 
    '[class*="user"]', '[class*="avatar"]',
    'button[class*="publish"]', 'a[href*="creator"]',
    # 未登录元素
    'button[class*="login"]', 'a[href*="login"]',
    '.login-btn', '.signin'
]

处理策略

  1. 先访问主页建立会话
  2. 检查登录状态
  3. 导航到创作者页面
  4. 二次检查是否被重定向
  5. 提供详细的错误诊断和解决建议

2. 改进的文件上传处理

新增功能

  • handle_file_upload_xiaohongshu() - 多策略文件上传
  • debug_xiaohongshu_page() - 页面状态调试

上传策略

upload_selectors = [
    "div[class^='upload-content'] input[class='upload-input']",  # 原始选择器
    'input.upload-input',  # 通用选择器
    'input[type="file"]',  # 文件输入通用
    'input[accept*="video"]',  # 视频文件输入
    'input[accept*="mp4"]',  # MP4文件输入
    '.upload-input',  # CSS类选择器
    '[class*="upload-input"]',  # 包含upload-input的类
    'input[accept*="*"]'  # 通用文件输入
]

特性

  • 多重选择器策略 - 按优先级尝试不同的元素选择器
  • 元素状态验证 - 检查元素是否可用和已附加
  • 重试机制 - 最多3次上传尝试
  • 详细日志 - 记录每个步骤的状态

3. 增强的反检测能力

集成统一工具

  • 使用 utils.anti_detection 模块
  • create_stealth_browser() - 创建隐蔽浏览器
  • create_stealth_context() - 创建隐蔽上下文
  • setup_stealth_page() - 设置隐蔽页面

小红书特定配置

# 为小红书设置合适的视口大小
custom_options = {'viewport': {"width": 1600, "height": 900}}

4. 调试和诊断工具

调试功能

  • 页面状态检查 - URL、标题、HTML长度
  • 错误信息检测 - 自动查找错误提示
  • 截图保存 - 保存调试截图
  • 详细日志 - 记录所有关键操作

使用建议

1. 处理登录问题

如果遇到登录重定向,请:

  1. 检查 cookies/xiaohongshu_uploader/account.json 文件是否存在且有效
  2. 重新获取小红书 cookie运行获取cookie脚本
  3. 尝试使用有头模式:headless=False
  4. 清除浏览器缓存后重新登录

2. 模式选择

  • 开发和调试阶段:建议使用 headless=False
  • 生产环境:可以尝试 headless=True,但要准备回退方案
  • 首次运行:建议使用 headless=False 确保Cookie有效

3. 错误处理

  • 检查上传器日志输出
  • 查看生成的调试截图
  • 根据错误信息采取相应措施

测试方法

运行测试脚本验证改进效果:

python examples/test_xiaohongshu_login_check.py

测试包括:

  1. 登录状态检测和重定向处理
  2. 无头模式反检测能力
  3. 文件上传元素查找能力

优势

  1. 更强的鲁棒性 - 能够处理各种异常情况
  2. 更好的反检测 - 集成了最新的反检测技术
  3. 详细的诊断 - 提供全面的错误信息和解决建议
  4. 灵活的策略 - 支持多种元素定位和上传策略
  5. 便于调试 - 丰富的日志和调试工具

注意事项

  • 小红书的反自动化检测较为严格,建议优先使用有头模式
  • Cookie有效性是成功上传的关键因素
  • 网络环境和页面加载速度可能影响上传成功率
  • 定期更新反检测策略以适应平台变化