API 문서 크롤링 및 스펙 문서 생성
입력
$ARGUMENTS 형식: <서비스명> <문서URL> [출력파일경로]
예시:
- •
upbit https://docs.upbit.com/kr/reference docs/exchange/upbit_openapi_spec.md - •
bithumb https://apidocs.bithumb.com docs/exchange/bithumb_openapi_spec.md - •
kis https://apiportal.koreainvestment.com docs/exchange/kis_openapi_spec.md
실행 절차
Phase 1: 사이트 구조 파악
- •Playwright MCP
browser_navigate로 문서 URL 접속 - •
browser_snapshot으로 페이지 구조 확인 (사이드바 네비게이션, API 카테고리) - •약관 동의 팝업이 있으면 자동 클릭하여 통과
- •API 카테고리 목록과 각 API 페이지 URL을 수집
Phase 2: 배치 크롤링
- •
browser_run_code를 사용하여 배치 단위(4~7개 페이지)로 크롤링:javascriptasync (page) => { const pages = ['url1', 'url2', ...]; const results = {}; for (const p of pages) { await page.goto(p, { waitUntil: 'domcontentloaded', timeout: 15000 }); await page.waitForTimeout(1500); const content = await page.evaluate(() => { const article = document.querySelector('article') || document.querySelector('main') || document.body; return article.innerText.substring(0, 5000); }); results[p] = content; } return JSON.stringify(results); } - •각 배치에서 추출할 정보:
- •API 이름, Method (GET/POST/DELETE), URL 경로
- •입력 파라미터 (이름, 타입, 필수여부, 설명)
- •출력 필드 (이름, 타입, 설명)
- •Rate Limit, 인증 방식
- •크롤링 대상 우선순위:
- •필수: 인증, 시세조회(현재가/호가/체결/캔들), 주문(생성/취소/조회), 잔고, WebSocket
- •선택: 입출금, 서비스 상태, 공지 등
Phase 3: 동적 로딩 대응
- •JavaScript SPA 사이트에서 내용이 안 보이면:
- •
browser_wait_for사용하여 특정 텍스트 로딩 대기 - •
browser_evaluate로 DOM 직접 탐색 - •그래도 불가능하면
[크롤링 불가 - 수동 확인 필요]로 표시
- •
- •테이블이 HTML table이 아닌 커스텀 컴포넌트인 경우:
- •
innerText기반 추출 후 파싱 - •탭/줄바꿈 패턴으로 필드 분리
- •
Phase 4: 문서 생성
- •수집된 데이터를 아래 표준 형식으로 정리:
출력 템플릿은 output-template.md를 참조합니다.
에러 대응
| 상황 | 대응 |
|---|---|
| 사이트 접속 불가 | 3회 재시도 후 실패 보고 |
| 약관/CAPTCHA 차단 | 사용자에게 수동 통과 요청 |
| 내용 누락 | [미확인 - 수동 확인 필요]로 표시 |
| Rate Limit | 배치 간 3초 대기 |