xhs-cdp-스크래핑-스킬은(는) 무엇을 하나요?
Claude Code가 실제 로그인된 Chrome 브라우저에 CDP(Chrome DevTools Protocol)를 연결하여 Xiaohongshu (RED) 게시물과 댓글을 스크래핑할 수 있게 해주는 스킬입니다. X-S/X-T 서명을 리버스 엔지니어링하지 않고 우회합니다.
작동 방식
- CDP 연결 —
chrome-remote-interface라이브러리를 사용하여 로컬에서 실행 중인 Chrome 인스턴스에 연결합니다. - 세션 재사용 — 이미 로그인된 Chrome 탭을 사용하므로 별도의 인증 토큰이나 쿠키 처리 없이 Xiaohongshu의 서명 검증을 우회합니다.
- 데이터 추출 — CDP 명령을 통해 페이지를 탐색하고 JavaScript를 실행하여 동적 콘텐츠를 추출합니다.
- 결과 반환 — 스크래핑된 데이터를 JSON 형식으로 반환하거나 파일로 저장합니다.
주요 기능
- 게시물 스크래핑: URL을 기반으로 단일 게시물의 상세 정보, 이미지, 동영상 등을 추출합니다.
- 댓글 스크래핑: 특정 게시물의 모든 댓글과 답글을 수집합니다.
- 무제한 액세스: 로그인된 세션을 사용하므로 속도 제한이나 IP 차단 위험이 낮습니다.
요구 사항
- Node.js (v16 이상)
- 실행 중인 Chrome 인스턴스 (원격 디버깅 포트 활성화, 예:
--remote-debugging-port=9222) - Chrome에 로그인된 Xiaohongshu 계정
설치
npm install chrome-remote-interface
사용법
1. Chrome을 원격 디버깅 모드로 실행
chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile
이미 Chrome이 실행 중인 경우, 기존 인스턴스를 닫고 위 명령어로 다시 실행하세요.
2. Claude Code에 스킬 불러오기
Claude Code 세션에서 이 스킬을 활성화하면 프롬프트를 통해 사용할 수 있습니다.
3. 예제 프롬프트
Claude, Xiaohongshu 게시물의 내용과 댓글을 스크래핑해줘.
URL: https://www.xiaohongshu.com/explore/123456789
123456789를 실제 게시물 ID로 교체하세요.
스크립트 예제
다음은 독립 실행형 Node.js 스크립트 예제입니다:
const CDP = require('chrome-remote-interface');
async function scrapeXHS(targetUrl) {
let client;
try {
client = await CDP({ host: '127.0.0.1', port: 9222 });
const { Page, Runtime } = client;
await Page.enable();
await Page.navigate({ url: targetUrl });
await Page.loadEventFired();
// 페이지 제목 추출
const { result } = await Runtime.evaluate({
expression: 'document.title'
});
console.log('페이지 제목:', result.value);
// 게시물 내용 추출 (예시)
const contentResult = await Runtime.evaluate({
expression: `JSON.stringify({
title: document.querySelector('.title')?.innerText || '',
content: document.querySelector('.content')?.innerText || ''
})`
});
console.log('게시물 데이터:', contentResult.value);
} catch (err) {
console.error('오류:', err);
} finally {
if (client) await client.close();
}
}
// 사용 예
scrapeXHS('https://www.xiaohongshu.com/explore/123456789');
중요 참고 사항
- 로그인 필수: 스크래핑하려는 데이터에 액세스하려면 Chrome에 Xiaohongshu 계정이 로그인되어 있어야 합니다.
- CDP 포트: Chrome을 시작할 때
--remote-debugging-port=9222플래그가 반드시 포함되어야 합니다. - 보안: 이 스킬은 로컬 머신에서만 실행하세요. 원격 디버깅 포트를 외부에 노출하지 마십시오.
- 법적 준수: 스크래핑하기 전에 Xiaohongshu의 이용약관을 확인하세요. 이 스킬은 교육 및 연구 목적으로 제공됩니다.
문제 해결
- 연결 거부됨: Chrome이 원격 디버깅 포트로 실행 중인지 확인하세요.
- 인증 오류: Chrome 브라우저에서 Xiaohongshu에 로그인되어 있는지 확인하세요.
- 데이터 없음: 게시물 URL이 올바른지, 게시물이 존재하는지 확인하세요.
라이선스
MIT