Install
openclaw skills install korean-scraperClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Korean website specialized scraper with anti-bot protection (Naver, Coupang, Daum, Instagram)
openclaw skills install korean-scraper한국 웹사이트 전문 스크래퍼 — Playwright 기반으로 네이버, 쿠팡, 다음 등 한국 주요 사이트에서 구조화된 데이터를 추출합니다. Anti-bot 보호 우회 기능 포함.
cd skills/korean-scraper
npm install
npx playwright install chromium
# 검색 결과 수집
node scripts/naver-blog.js search "맛집 추천" --limit 10
# 특정 블로그 본문 추출
node scripts/naver-blog.js extract "https://blog.naver.com/..."
# 인기글 수집
node scripts/naver-cafe.js popular "카페URL" --limit 20
# 최신글 수집
node scripts/naver-cafe.js recent "카페URL" --limit 20
# 상품 정보 추출
node scripts/coupang.js product "상품URL"
# 검색 결과 수집
node scripts/coupang.js search "무선 이어폰" --limit 20
# 검색 결과 수집
node scripts/naver-news.js search "AI" --limit 10
# 기사 본문 추출
node scripts/naver-news.js extract "https://n.news.naver.com/..."
# 검색 결과 수집
node scripts/daum-news.js search "경제" --limit 10
# 기사 본문 추출
node scripts/daum-news.js extract "https://v.daum.net/..."
모든 스크립트는 구조화된 JSON을 반환합니다:
{
"status": "success",
"query": "맛집 추천",
"count": 10,
"results": [
{
"title": "서울 강남 맛집 추천 BEST 5",
"url": "https://blog.naver.com/...",
"blogger": "맛집탐험가",
"date": "2026-02-15",
"snippet": "강남역 근처 숨은 맛집들을..."
}
]
}
{
"status": "success",
"url": "https://blog.naver.com/...",
"title": "서울 강남 맛집 추천 BEST 5",
"author": "맛집탐험가",
"date": "2026-02-15",
"content": "# 서울 강남 맛집 추천 BEST 5\n\n1. ...",
"images": ["https://..."],
"tags": ["맛집", "강남", "서울"]
}
{
"status": "success",
"url": "https://www.coupang.com/...",
"productName": "애플 에어팟 프로 2세대",
"price": 299000,
"originalPrice": 359000,
"discount": "17%",
"rating": 4.8,
"reviewCount": 1523,
"rocketDelivery": true,
"seller": "쿠팡",
"images": ["https://..."]
}
{
"status": "success",
"cafeUrl": "https://cafe.naver.com/...",
"type": "popular",
"count": 20,
"posts": [
{
"title": "신입 회원 인사드립니다",
"url": "https://cafe.naver.com/.../12345",
"author": "닉네임",
"date": "2026-02-17",
"views": 523,
"comments": 12
}
]
}
{
"status": "success",
"url": "https://n.news.naver.com/...",
"title": "AI 시장 규모 급성장 전망",
"media": "조선일보",
"author": "홍길동 기자",
"date": "2026-02-17 09:30",
"content": "# AI 시장 규모 급성장 전망\n\n...",
"category": "IT/과학",
"images": ["https://..."]
}
모든 스크립트는 기본적으로 사이트를 보호합니다:
--fast 플래그로 딜레이 축소 가능 (주의)| 상황 | 동작 |
|---|---|
| 404 | JSON으로 에러 반환, 계속 진행 |
| 403/차단 | 재시도 (최대 3회) |
| 타임아웃 | 대기 시간 연장 후 재시도 |
| 로그인 필요 | 경고 메시지 + 가능한 데이터만 반환 |
# Headless 모드 끄기 (디버깅용)
HEADLESS=false node scripts/naver-blog.js ...
# 스크린샷 저장
SCREENSHOT=true node scripts/coupang.js ...
# 대기 시간 조정 (ms)
WAIT_TIME=10000 node scripts/naver-cafe.js ...
# User-Agent 커스텀
USER_AGENT="..." node scripts/naver-news.js ...
// 네이버 블로그 검색
const result = await exec({
command: 'node scripts/naver-blog.js search "AI 트렌드" --limit 5',
workdir: '/path/to/skills/korean-scraper'
});
const data = JSON.parse(result.stdout);
# 여러 URL 일괄 처리
cat urls.txt | while read url; do
node scripts/naver-blog.js extract "$url" >> results.jsonl
done
해결책:
WAIT_TIME=15000)HEADLESS=false)해결책:
해결책:
WAIT_TIME 늘리기한국 사이트들은 UI를 자주 변경하므로, 셀렉터 업데이트가 필요할 수 있습니다.
셀렉터 위치: scripts/ 내 각 파일 상단 SELECTORS 객체
const SELECTORS = {
blogTitle: '.se-title-text',
blogContent: '.se-main-container',
// ...
};