⏱️ 예상 읽기 시간: 8분

소개

샤오홍슈(小红书, 리틀 레드북 또는 RedNote라고도 불림)는 월간 활성 사용자가 3억 명이 넘는 중국의 가장 영향력 있는 소셜 커머스 플랫폼 중 하나로 성장했습니다. 이 플랫폼에서 입지를 구축하려는 콘텐츠 크리에이터와 마케터들에게 xhs_ai_publisher 프로젝트는 콘텐츠 생성과 발행 워크플로우를 자동화하는 강력한 솔루션을 제공합니다.

이 종합 튜토리얼은 AI 기반 콘텐츠 생성과 셀레니움 기반 RPA(로봇 프로세스 자동화)를 이용한 자동 발행 기능을 결합한 xhs_ai_publisher 도구의 설정과 사용법을 안내해드립니다.

xhs_ai_publisher란 무엇인가?

xhs_ai_publisher는 샤오홍슈를 위한 AI 기반 운영 어시스턴트 역할을 하는 오픈소스 파이썬 프로젝트입니다. 두 가지 주요 구성요소로 이루어져 있습니다:

🤖 AI 콘텐츠 생성

  • 자동 콘텐츠 생성: 제목, 설명, 해시태그를 포함한 샤오홍슈 스타일의 게시물 생성
  • 이미지 통합: 게시물에 관련된 이미지를 자동으로 선택하고 처리
  • 스타일 최적화: 샤오홍슈의 독특한 글쓰기 스타일과 형식 규칙에 맞춘 콘텐츠 보장

🎯 자동 발행

  • RPA 자동화: 셀레니움 웹드라이버를 사용하여 사용자 상호작용 시뮬레이션
  • 다중 계정 지원: 여러 샤오홍슈 계정을 동시에 관리
  • 예약 발행: 시간 지정 및 일괄 발행 기능 지원
  • 브라우저 핑거프린팅: 자동화 탐지 방지를 위한 안전 조치 포함

주요 기능과 역량

기능 설명 이점
🎨 AI 콘텐츠 생성 적절한 형식의 매력적인 게시물 생성 콘텐츠 생성 시간 절약
📱 다중 계정 관리 여러 샤오홍슈 계정 처리 효율적인 규모 확장
🖼️ 자동 이미지 처리 스마트 이미지 선택 및 최적화 전문적인 시각적 콘텐츠
🔒 프록시 지원 HTTP/HTTPS/SOCKS5 프록시 설정 강화된 개인정보 보호와 보안
🌐 브라우저 자동화 셀레니움 기반 발행 자동화 안정적인 게시 워크플로우
📊 사용자 관리 시스템 종합적인 계정 및 프로필 관리 체계적인 운영

시스템 요구사항

시작하기 전에 시스템이 다음 요구사항을 충족하는지 확인하세요:

구성요소 요구사항 권장사항
🐍 Python 3.8+ 최신 안정 버전
🌐 Chrome 브라우저 최신 버전 셀레니움 자동화용
💾 메모리 4GB+ 8GB+ 권장
💿 저장공간 2GB+ 의존성과 데이터용
🌍 네트워크 안정적인 인터넷 VPN이 필요할 수 있음

설치 가이드

이 프로젝트는 다양한 운영 체제에서 여러 설치 방법을 지원합니다.

🚀 빠른 설치 (권장)

운영 체제에 맞는 적절한 설치 스크립트를 선택하세요:

🍎 macOS 설치

# 1️⃣ 저장소 복제
git clone https://github.com/BetaStreetOmnis/xhs_ai_publisher.git
cd xhs_ai_publisher

# 2️⃣ 설치 스크립트 실행
chmod +x install_mac.sh
./install_mac.sh

# 3️⃣ 애플리케이션 시작
./启动程序.sh

특징:

  • ✅ 자동 Python 환경 감지 및 설치
  • ✅ Homebrew 설치 (필요시)
  • ✅ Apple Silicon과 Intel 칩 모두 지원
  • ✅ 완전한 의존성 관리 및 가상 환경 설정

🐧 Linux 설치

# 1️⃣ 저장소 복제
git clone https://github.com/BetaStreetOmnis/xhs_ai_publisher.git
cd xhs_ai_publisher

# 2️⃣ 설치 스크립트 실행
chmod +x install.sh
./install.sh

# 3️⃣ 애플리케이션 시작
./启动程序.sh

지원되는 배포판:

  • ✅ Ubuntu/Debian 계열
  • ✅ RHEL/CentOS/Rocky Linux
  • ✅ Fedora
  • ✅ openSUSE/SLES
  • ✅ Arch Linux/Manjaro

💻 Windows 설치

# 1️⃣ 저장소 복제
git clone https://github.com/BetaStreetOmnis/xhs_ai_publisher.git
cd xhs_ai_publisher

# 2️⃣ 설치 스크립트 실행
install.bat

# 3️⃣ 애플리케이션 시작
启动程序.bat

요구사항:

  • ✅ Windows 10/11
  • ✅ 자동 Python 설치 (필요시)
  • ✅ 완전한 의존성 관리

🔧 수동 설치 (고급 사용자)

# 1️⃣ 저장소 복제
git clone https://github.com/BetaStreetOmnis/xhs_ai_publisher.git
cd xhs_ai_publisher

# 2️⃣ 가상 환경 생성
python -m venv venv

# 3️⃣ 가상 환경 활성화
# Linux/Mac:
source venv/bin/activate
# Windows:
venv\Scripts\activate

# 4️⃣ 의존성 설치
pip install -r requirements.txt

# 5️⃣ 데이터베이스 초기화 (선택사항)
python init_db.py

# 6️⃣ 애플리케이션 시작
python main.py

설정 구성

🔑 환경 설정

.env 파일을 생성하고 설정하세요:

# AI 설정
OPENAI_API_KEY=your_openai_api_key_here
AI_MODEL=gpt-3.5-turbo
MAX_TOKENS=2000
TEMPERATURE=0.7

# 샤오홍슈 설정
XHS_USERNAME=your_username
XHS_PASSWORD=your_password

# 프록시 설정 (선택사항)
PROXY_TYPE=http
PROXY_HOST=your_proxy_host
PROXY_PORT=your_proxy_port
PROXY_USERNAME=your_proxy_username
PROXY_PASSWORD=your_proxy_password

# 브라우저 설정
HEADLESS_MODE=false
BROWSER_TIMEOUT=30

⚙️ 고급 설정

고급 설정을 위해 config.py 파일을 편집하세요:

# AI 설정
AI_CONFIG = {
    "model": "gpt-3.5-turbo",
    "max_tokens": 2000,
    "temperature": 0.7,
    "system_prompt": "당신은 샤오홍슈 콘텐츠 크리에이터입니다..."
}

# 브라우저 설정
BROWSER_CONFIG = {
    "headless": False,
    "user_agent": "Mozilla/5.0...",
    "viewport": {"width": 1920, "height": 1080},
    "page_load_timeout": 30
}

# 발행 설정
PUBLISH_CONFIG = {
    "auto_publish": False,
    "delay_range": [3, 8],
    "max_retry": 3,
    "screenshot_on_error": True
}

단계별 사용 가이드

1. 🚀 애플리케이션 시작

다음 방법 중 하나를 사용하여 애플리케이션을 실행하세요:

# 방법 1: 시작 스크립트 사용
./启动程序.sh

# 방법 2: 직접 Python 실행
python main.py

# 방법 3: 특정 설정 사용
python main.py --config custom_config.py

2. 👤 사용자 관리

  1. 사용자 관리 접근: 메인 인터페이스에서 “사용자 관리” 버튼을 클릭
  2. 새 사용자 추가: 계정 세부사항과 환경설정을 구성
  3. 프록시 설정: 각 계정에 대한 프록시 설정 구성
  4. 브라우저 핑거프린팅: 탐지 방지를 위한 고유한 브라우저 핑거프린트 설정

3. 📱 계정 인증

# 인증 플로우 예시
def authenticate_account(phone_number):
    """
    샤오홍슈 계정 인증
    """
    # 1. 전화번호 입력
    driver.find_element(By.ID, "phone").send_keys(phone_number)
    
    # 2. 인증 코드 요청
    driver.find_element(By.ID, "send_code").click()
    
    # 3. 인증 코드 입력 (수동 입력 필요)
    verification_code = input("인증 코드를 입력하세요: ")
    driver.find_element(By.ID, "code").send_keys(verification_code)
    
    # 4. 제출 및 세션 저장
    driver.find_element(By.ID, "login").click()
    
    return True

4. ✍️ 콘텐츠 생성 워크플로우

자동 콘텐츠 생성

# 콘텐츠 생성 예시
def generate_content(topic):
    """
    샤오홍슈 스타일 콘텐츠 생성
    """
    prompt = f"""
    다음 주제에 대한 샤오홍슈 게시물을 작성하세요: {topic}
    
    요구사항:
    - 이모지가 포함된 매력적인 제목
    - 200-300자 설명
    - 5-8개의 관련 해시태그
    - 샤오홍슈 글쓰기 스타일
    """
    
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=2000,
        temperature=0.7
    )
    
    return response.choices[0].message.content

수동 콘텐츠 입력

  1. 주제 입력: 메인 입력 필드에 원하는 주제를 입력
  2. 콘텐츠 생성: “콘텐츠 생성” 버튼을 클릭
  3. 검토 및 편집: AI가 생성한 콘텐츠를 검토하고 조정
  4. 이미지 선택: 관련 이미지를 선택하거나 업로드

5. 🖼️ 이미지 관리

이 도구는 포괄적인 이미지 처리 기능을 제공합니다:

# 이미지 처리 예시
def process_images(topic, num_images=3):
    """
    샤오홍슈용 이미지 처리 및 최적화
    """
    # 1. 관련 이미지 검색
    images = search_stock_images(topic)
    
    # 2. 크기 조정 및 최적화
    processed_images = []
    for img in images[:num_images]:
        # 샤오홍슈 최적 치수: 3:4 비율
        resized = img.resize((750, 1000))
        processed_images.append(resized)
    
    # 3. 필요시 워터마크나 필터 추가
    return processed_images

6. 📤 발행 프로세스

자동 발행

def publish_post(title, content, images, hashtags):
    """
    샤오홍슈에 게시물 자동 발행
    """
    try:
        # 1. 게시물 작성 페이지로 이동
        driver.get("https://creator.xiaohongshu.com/publish/publish")
        
        # 2. 이미지 업로드
        for img_path in images:
            upload_element = driver.find_element(By.CSS_SELECTOR, "input[type='file']")
            upload_element.send_keys(img_path)
            time.sleep(2)
        
        # 3. 제목과 콘텐츠 추가
        title_field = driver.find_element(By.CSS_SELECTOR, "input[placeholder*='title']")
        title_field.send_keys(title)
        
        content_field = driver.find_element(By.CSS_SELECTOR, "textarea")
        content_field.send_keys(f"{content}\n\n{' '.join(hashtags)}")
        
        # 4. 발행
        publish_button = driver.find_element(By.CSS_SELECTOR, "button[data-testid='publish']")
        publish_button.click()
        
        return True
        
    except Exception as e:
        logger.error(f"발행 실패: {e}")
        return False

예약 발행

def schedule_post(content, publish_time):
    """
    미래 발행을 위한 게시물 예약
    """
    scheduler = BackgroundScheduler()
    scheduler.add_job(
        func=publish_post,
        trigger="date",
        run_date=publish_time,
        args=[content['title'], content['text'], content['images'], content['hashtags']]
    )
    scheduler.start()

고급 기능

🔒 프록시 설정

강화된 보안을 위한 다양한 프록시 유형 설정:

# 프록시 설정 예시
PROXY_CONFIGS = {
    "http": {
        "proxy_type": "http",
        "host": "proxy.example.com",
        "port": 8080,
        "username": "user",
        "password": "pass"
    },
    "socks5": {
        "proxy_type": "socks5",
        "host": "socks.example.com",
        "port": 1080
    }
}

def setup_proxy(driver, config):
    """브라우저 세션용 프록시 설정"""
    proxy = Proxy()
    proxy.proxy_type = ProxyType.MANUAL
    proxy.http_proxy = f"{config['host']}:{config['port']}"
    proxy.ssl_proxy = f"{config['host']}:{config['port']}"
    
    capabilities = webdriver.DesiredCapabilities.CHROME
    proxy.add_to_capabilities(capabilities)
    
    return capabilities

🔍 탐지 방지 조치

브라우저 핑거프린팅과 행동 무작위화 구현:

def setup_stealth_browser():
    """스텔스 작업용 브라우저 설정"""
    options = webdriver.ChromeOptions()
    
    # 자동화 플래그 비활성화
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    
    # 무작위 사용자 에이전트
    options.add_argument(f"--user-agent={get_random_user_agent()}")
    
    # 무작위 뷰포트
    viewport = get_random_viewport()
    options.add_argument(f"--window-size={viewport['width']},{viewport['height']}")
    
    driver = webdriver.Chrome(options=options)
    
    # 스텔스 스크립트 실행
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    
    return driver

📊 분석 및 모니터링

게시물 성과와 시스템 상태 추적:

def track_post_performance(post_id):
    """게시물 참여 지표 모니터링"""
    metrics = {
        "views": 0,
        "likes": 0,
        "comments": 0,
        "shares": 0,
        "timestamp": datetime.now()
    }
    
    # 게시물 페이지에서 지표 스크래핑
    driver.get(f"https://xiaohongshu.com/explore/{post_id}")
    
    try:
        likes = driver.find_element(By.CSS_SELECTOR, "[data-testid='like-count']").text
        metrics["likes"] = int(likes.replace("k", "000") if "k" in likes else likes)
    except:
        pass
    
    # 데이터베이스에 저장
    save_metrics(post_id, metrics)
    return metrics

문제 해결 가이드

일반적인 문제와 해결책

1. 🚫 로그인 문제

문제: 샤오홍슈 계정으로 인증할 수 없음

해결책:

def fix_login_issues():
    """일반적인 로그인 문제 해결 단계"""
    steps = [
        "1. 브라우저 캐시와 쿠키 지우기",
        "2. Chrome 브라우저를 최신 버전으로 업데이트",
        "3. 프록시 설정 확인",
        "4. 전화번호 형식 확인",
        "5. 다른 사용자 에이전트 문자열 사용",
        "6. 수동 캡차 해결 활성화"
    ]
    return steps

2. 🖼️ 이미지 업로드 실패

문제: 이미지 업로드 또는 처리 실패

해결책:

def fix_image_issues():
    """이미지 문제 해결 체크리스트"""
    checks = [
        "이미지 형식 확인 (JPG, PNG 지원)",
        "이미지 크기 확인 (최대 10MB)",
        "적절한 화면 비율 보장 (3:4 권장)",
        "이미지 치수 검증 (최소 750px 너비)",
        "사용 가능한 디스크 공간 확인",
        "네트워크 연결 확인"
    ]
    return checks

3. 🔄 자동화 탐지

문제: 샤오홍슈가 자동화를 탐지함

해결책:

def avoid_detection():
    """탐지 방지 모범 사례"""
    practices = [
        "주거용 프록시 사용",
        "작업 간 시간 무작위화",
        "인간과 같은 마우스 움직임 구현",
        "사용자 에이전트 정기 교체",
        "게시 빈도 제한",
        "다른 브라우저 핑거프린트 사용"
    ]
    return practices

모범 사례와 팁

📝 콘텐츠 생성 모범 사례

  1. 샤오홍슈 문화 이해: 트렌딩 주제와 인기 형식 연구
  2. 적절한 해시태그 사용: 더 나은 검색가능성을 위해 5-8개의 관련 해시태그 포함
  3. 이미지 품질 최적화: 적절한 조명의 고해상도 이미지 사용
  4. 일관성 유지: 청중 참여를 구축하기 위해 정기적으로 게시
  5. 트렌드 모니터링: 플랫폼 알고리즘 변화에 대한 최신 정보 유지

🔒 보안 고려사항

# 보안 체크리스트
SECURITY_CHECKLIST = {
    "계정_안전": [
        "강력하고 고유한 비밀번호 사용",
        "이중 인증 활성화",
        "접근 자격증명 정기 교체",
        "계정 활동 로그 모니터링"
    ],
    "자동화_안전": [
        "속도 제한 구현",
        "고품질 프록시 사용",
        "자동화 패턴 무작위화",
        "플랫폼 정책 변화 모니터링"
    ],
    "데이터_보호": [
        "민감한 설정 암호화",
        "API 키 적절히 보안",
        "접근 제어 구현",
        "정기 백업 절차"
    ]
}

성능 최적화

⚡ 속도 최적화

def optimize_performance():
    """성능 최적화 기법"""
    optimizations = {
        "병렬_처리": "다중 계정을 위한 스레딩 사용",
        "캐시_관리": "이미지와 콘텐츠를 위한 지능적 캐싱 구현",
        "리소스_풀링": "가능할 때 브라우저 인스턴스 재사용",
        "데이터베이스_최적화": "자주 쿼리되는 필드 인덱싱",
        "메모리_관리": "사용하지 않는 객체의 정기적 정리"
    }
    return optimizations

📊 모니터링과 로깅

import logging
from datetime import datetime

def setup_logging():
    """포괄적인 로깅 설정"""
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
        handlers=[
            logging.FileHandler(f'xhs_publisher_{datetime.now().strftime("%Y%m%d")}.log'),
            logging.StreamHandler()
        ]
    )
    
    # 전문 로거 생성
    automation_logger = logging.getLogger('automation')
    content_logger = logging.getLogger('content_generation')
    error_logger = logging.getLogger('errors')
    
    return {
        'automation': automation_logger,
        'content': content_logger,
        'errors': error_logger
    }

향후 로드맵과 업데이트

xhs_ai_publisher 프로젝트는 계획된 개선사항과 함께 계속 발전하고 있습니다:

🚀 향후 기능

  • 기본 기능: 콘텐츠 생성 및 발행 (완료)
  • 사용자 관리: 다중 계정 지원 (완료)
  • 프록시 설정: 네트워크 프록시 지원 (완료)
  • 🔄 콘텐츠 라이브러리: 자료 관리 시스템 (진행 중)
  • 🔄 템플릿 라이브러리: 사전 설정 템플릿 시스템 (진행 중)
  • 🔄 분석 대시보드: 발행 성과 분석 (계획됨)
  • 🔄 API 인터페이스: 오픈 API 엔드포인트 (계획됨)
  • 🔄 모바일 지원: 모바일 애플리케이션 (계획됨)

결론

xhs_ai_publisher 도구는 특별히 샤오홍슈 플랫폼에 맞춘 소셜 미디어 자동화의 중요한 발전을 나타냅니다. AI 기반 콘텐츠 생성과 정교한 자동화 기능을 결합하여, 콘텐츠 크리에이터와 마케터들이 품질과 진정성을 유지하면서 운영을 확장할 수 있게 해줍니다.

핵심 요점

  1. 포괄적인 솔루션: 도구가 생성부터 발행까지 전체 콘텐츠 라이프사이클을 다룸
  2. 유연한 설정: 다양한 사용 사례를 위한 광범위한 커스터마이제이션 옵션
  3. 보안 중심: 내장된 탐지 방지 및 보안 조치
  4. 활발한 개발: 지속적인 개선과 기능 추가
  5. 커뮤니티 주도: 활발한 기여자 커뮤니티가 있는 오픈소스 프로젝트

시작하기

xhs_ai_publisher로 여정을 시작하려면:

  1. 도구 설치: 운영 체제에 맞는 설치 가이드를 따르세요
  2. 설정 구성: AI API 키와 프록시 설정을 구성하세요
  3. 콘텐츠 생성: 워크플로우를 이해하기 위해 간단한 게시물부터 시작하세요
  4. 성과 모니터링: 결과를 추적하고 전략을 최적화하세요
  5. 커뮤니티 참여: 팁과 문제 해결을 위해 다른 사용자들과 소통하세요

워크플로우를 간소화하려는 콘텐츠 크리에이터든 샤오홍슈 존재감을 확장하려는 마케터든, 이 도구는 자동화되고 지능적인 소셜 미디어 관리의 기반을 제공합니다.


📚 추가 리소스:

🌟 도움이 되셨다면 GitHub에서 프로젝트에 별표를 주세요!