{
  "schemaVersion": "1.0",
  "item": {
    "slug": "korean-scraper",
    "name": "Korean Scraper",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/mupengi-bot/korean-scraper",
    "canonicalUrl": "https://clawhub.ai/mupengi-bot/korean-scraper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/korean-scraper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=korean-scraper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "lib/common.js",
      "package.json",
      "scripts/coupang.js",
      "scripts/daum-news.js",
      "scripts/naver-blog.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/korean-scraper"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/korean-scraper",
    "agentPageUrl": "https://openagent3.xyz/skills/korean-scraper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/korean-scraper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/korean-scraper/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "korean-scraper",
        "body": "한국 웹사이트 전문 스크래퍼 — Playwright 기반으로 네이버, 쿠팡, 다음 등 한국 주요 사이트에서 구조화된 데이터를 추출합니다. Anti-bot 보호 우회 기능 포함."
      },
      {
        "title": "When to Use",
        "body": "네이버 블로그 검색 결과 수집 또는 특정 블로그 본문 추출\n네이버 카페 인기글/최신글 스크래핑\n쿠팡 상품 정보 (가격, 리뷰, 별점) 수집\n네이버 뉴스/다음 뉴스 기사 본문 추출\n한국 사이트 대상 자동화된 데이터 수집"
      },
      {
        "title": "Installation",
        "body": "cd skills/korean-scraper\nnpm install\nnpx playwright install chromium"
      },
      {
        "title": "네이버 블로그",
        "body": "# 검색 결과 수집\nnode scripts/naver-blog.js search \"맛집 추천\" --limit 10\n\n# 특정 블로그 본문 추출\nnode scripts/naver-blog.js extract \"https://blog.naver.com/...\""
      },
      {
        "title": "네이버 카페",
        "body": "# 인기글 수집\nnode scripts/naver-cafe.js popular \"카페URL\" --limit 20\n\n# 최신글 수집\nnode scripts/naver-cafe.js recent \"카페URL\" --limit 20"
      },
      {
        "title": "쿠팡 상품",
        "body": "# 상품 정보 추출\nnode scripts/coupang.js product \"상품URL\"\n\n# 검색 결과 수집\nnode scripts/coupang.js search \"무선 이어폰\" --limit 20"
      },
      {
        "title": "네이버 뉴스",
        "body": "# 검색 결과 수집\nnode scripts/naver-news.js search \"AI\" --limit 10\n\n# 기사 본문 추출\nnode scripts/naver-news.js extract \"https://n.news.naver.com/...\""
      },
      {
        "title": "다음 뉴스",
        "body": "# 검색 결과 수집\nnode scripts/daum-news.js search \"경제\" --limit 10\n\n# 기사 본문 추출\nnode scripts/daum-news.js extract \"https://v.daum.net/...\""
      },
      {
        "title": "Output Format",
        "body": "모든 스크립트는 구조화된 JSON을 반환합니다:"
      },
      {
        "title": "네이버 블로그 검색",
        "body": "{\n  \"status\": \"success\",\n  \"query\": \"맛집 추천\",\n  \"count\": 10,\n  \"results\": [\n    {\n      \"title\": \"서울 강남 맛집 추천 BEST 5\",\n      \"url\": \"https://blog.naver.com/...\",\n      \"blogger\": \"맛집탐험가\",\n      \"date\": \"2026-02-15\",\n      \"snippet\": \"강남역 근처 숨은 맛집들을...\"\n    }\n  ]\n}"
      },
      {
        "title": "네이버 블로그 본문",
        "body": "{\n  \"status\": \"success\",\n  \"url\": \"https://blog.naver.com/...\",\n  \"title\": \"서울 강남 맛집 추천 BEST 5\",\n  \"author\": \"맛집탐험가\",\n  \"date\": \"2026-02-15\",\n  \"content\": \"# 서울 강남 맛집 추천 BEST 5\\n\\n1. ...\",\n  \"images\": [\"https://...\"],\n  \"tags\": [\"맛집\", \"강남\", \"서울\"]\n}"
      },
      {
        "title": "쿠팡 상품",
        "body": "{\n  \"status\": \"success\",\n  \"url\": \"https://www.coupang.com/...\",\n  \"productName\": \"애플 에어팟 프로 2세대\",\n  \"price\": 299000,\n  \"originalPrice\": 359000,\n  \"discount\": \"17%\",\n  \"rating\": 4.8,\n  \"reviewCount\": 1523,\n  \"rocketDelivery\": true,\n  \"seller\": \"쿠팡\",\n  \"images\": [\"https://...\"]\n}"
      },
      {
        "title": "네이버 카페",
        "body": "{\n  \"status\": \"success\",\n  \"cafeUrl\": \"https://cafe.naver.com/...\",\n  \"type\": \"popular\",\n  \"count\": 20,\n  \"posts\": [\n    {\n      \"title\": \"신입 회원 인사드립니다\",\n      \"url\": \"https://cafe.naver.com/.../12345\",\n      \"author\": \"닉네임\",\n      \"date\": \"2026-02-17\",\n      \"views\": 523,\n      \"comments\": 12\n    }\n  ]\n}"
      },
      {
        "title": "뉴스 기사",
        "body": "{\n  \"status\": \"success\",\n  \"url\": \"https://n.news.naver.com/...\",\n  \"title\": \"AI 시장 규모 급성장 전망\",\n  \"media\": \"조선일보\",\n  \"author\": \"홍길동 기자\",\n  \"date\": \"2026-02-17 09:30\",\n  \"content\": \"# AI 시장 규모 급성장 전망\\n\\n...\",\n  \"category\": \"IT/과학\",\n  \"images\": [\"https://...\"]\n}"
      },
      {
        "title": "Anti-Bot Features",
        "body": "navigator.webdriver 숨김 — 자동화 탐지 회피\n실제 User-Agent 사용 — 모바일/데스크탑 랜덤\n인간 행동 모방 — 랜덤 딜레이, 스크롤\nStealth Plugin — Playwright extra stealth\nCloudflare 우회 — 대기 시간 자동 조정"
      },
      {
        "title": "Rate Limiting",
        "body": "모든 스크립트는 기본적으로 사이트를 보호합니다:\n\n요청당 2-5초 랜덤 딜레이\n동일 도메인 1초당 최대 1회 요청\n429 응답 시 자동 백오프\n--fast 플래그로 딜레이 축소 가능 (주의)"
      },
      {
        "title": "Error Handling",
        "body": "상황동작404JSON으로 에러 반환, 계속 진행403/차단재시도 (최대 3회)타임아웃대기 시간 연장 후 재시도로그인 필요경고 메시지 + 가능한 데이터만 반환"
      },
      {
        "title": "Environment Variables",
        "body": "# Headless 모드 끄기 (디버깅용)\nHEADLESS=false node scripts/naver-blog.js ...\n\n# 스크린샷 저장\nSCREENSHOT=true node scripts/coupang.js ...\n\n# 대기 시간 조정 (ms)\nWAIT_TIME=10000 node scripts/naver-cafe.js ...\n\n# User-Agent 커스텀\nUSER_AGENT=\"...\" node scripts/naver-news.js ..."
      },
      {
        "title": "OpenClaw Agent 통합",
        "body": "// 네이버 블로그 검색\nconst result = await exec({\n  command: 'node scripts/naver-blog.js search \"AI 트렌드\" --limit 5',\n  workdir: '/path/to/skills/korean-scraper'\n});\nconst data = JSON.parse(result.stdout);"
      },
      {
        "title": "Batch Processing",
        "body": "# 여러 URL 일괄 처리\ncat urls.txt | while read url; do\n  node scripts/naver-blog.js extract \"$url\" >> results.jsonl\ndone"
      },
      {
        "title": "Limitations",
        "body": "로그인 필요 콘텐츠: 현재 비로그인 상태로만 스크래핑 (쿠팡 일부 리뷰 등)\n동적 로딩: 무한 스크롤은 기본 10개까지만 (--scroll 플래그로 확장 가능)\nCAPTCHA: 수동 우회 필요 (자동화 불가)\nIP 차단: 과도한 요청 시 일시적 차단 가능 (rate limiting 준수 필요)"
      },
      {
        "title": "Compliance & Ethics",
        "body": "✅ 공개된 정보만 수집\n✅ robots.txt 준수 (기본값)\n✅ Rate limiting으로 서버 부하 최소화\n❌ 개인정보 수집 금지\n❌ 로그인 필요 콘텐츠 무단 접근 금지\n❌ 저작권 침해 목적 사용 금지"
      },
      {
        "title": "문제: 403 Forbidden",
        "body": "해결책:\n\nUser-Agent 변경 시도\n대기 시간 늘리기 (WAIT_TIME=15000)\nHeadless 모드 끄기 (HEADLESS=false)"
      },
      {
        "title": "문제: 빈 결과 반환",
        "body": "해결책:\n\nURL 형식 확인\n사이트 구조 변경 가능성 (셀렉터 업데이트 필요)\n로그인 필요 여부 확인"
      },
      {
        "title": "문제: Timeout",
        "body": "해결책:\n\nWAIT_TIME 늘리기\n인터넷 연결 확인\n사이트 접근 가능 여부 확인 (VPN 필요 등)"
      },
      {
        "title": "Maintenance",
        "body": "한국 사이트들은 UI를 자주 변경하므로, 셀렉터 업데이트가 필요할 수 있습니다.\n\n셀렉터 위치: scripts/ 내 각 파일 상단 SELECTORS 객체\n\nconst SELECTORS = {\n  blogTitle: '.se-title-text',\n  blogContent: '.se-main-container',\n  // ...\n};"
      },
      {
        "title": "Future Improvements",
        "body": "인스타그램 게시물 스크래핑\n 네이버 쇼핑 가격 비교\n 유튜브 한국 채널 메타데이터\n 배치 처리 최적화 (병렬 실행)\n 쿠키/세션 관리 (로그인 유지)\n Proxy 지원"
      },
      {
        "title": "References",
        "body": "Playwright Official Docs\nplaywright-extra-plugin-stealth\n네이버 개발자 센터"
      }
    ],
    "body": "korean-scraper\n\n한국 웹사이트 전문 스크래퍼 — Playwright 기반으로 네이버, 쿠팡, 다음 등 한국 주요 사이트에서 구조화된 데이터를 추출합니다. Anti-bot 보호 우회 기능 포함.\n\nWhen to Use\n네이버 블로그 검색 결과 수집 또는 특정 블로그 본문 추출\n네이버 카페 인기글/최신글 스크래핑\n쿠팡 상품 정보 (가격, 리뷰, 별점) 수집\n네이버 뉴스/다음 뉴스 기사 본문 추출\n한국 사이트 대상 자동화된 데이터 수집\nInstallation\ncd skills/korean-scraper\nnpm install\nnpx playwright install chromium\n\nQuick Start\n네이버 블로그\n# 검색 결과 수집\nnode scripts/naver-blog.js search \"맛집 추천\" --limit 10\n\n# 특정 블로그 본문 추출\nnode scripts/naver-blog.js extract \"https://blog.naver.com/...\"\n\n네이버 카페\n# 인기글 수집\nnode scripts/naver-cafe.js popular \"카페URL\" --limit 20\n\n# 최신글 수집\nnode scripts/naver-cafe.js recent \"카페URL\" --limit 20\n\n쿠팡 상품\n# 상품 정보 추출\nnode scripts/coupang.js product \"상품URL\"\n\n# 검색 결과 수집\nnode scripts/coupang.js search \"무선 이어폰\" --limit 20\n\n네이버 뉴스\n# 검색 결과 수집\nnode scripts/naver-news.js search \"AI\" --limit 10\n\n# 기사 본문 추출\nnode scripts/naver-news.js extract \"https://n.news.naver.com/...\"\n\n다음 뉴스\n# 검색 결과 수집\nnode scripts/daum-news.js search \"경제\" --limit 10\n\n# 기사 본문 추출\nnode scripts/daum-news.js extract \"https://v.daum.net/...\"\n\nOutput Format\n\n모든 스크립트는 구조화된 JSON을 반환합니다:\n\n네이버 블로그 검색\n{\n  \"status\": \"success\",\n  \"query\": \"맛집 추천\",\n  \"count\": 10,\n  \"results\": [\n    {\n      \"title\": \"서울 강남 맛집 추천 BEST 5\",\n      \"url\": \"https://blog.naver.com/...\",\n      \"blogger\": \"맛집탐험가\",\n      \"date\": \"2026-02-15\",\n      \"snippet\": \"강남역 근처 숨은 맛집들을...\"\n    }\n  ]\n}\n\n네이버 블로그 본문\n{\n  \"status\": \"success\",\n  \"url\": \"https://blog.naver.com/...\",\n  \"title\": \"서울 강남 맛집 추천 BEST 5\",\n  \"author\": \"맛집탐험가\",\n  \"date\": \"2026-02-15\",\n  \"content\": \"# 서울 강남 맛집 추천 BEST 5\\n\\n1. ...\",\n  \"images\": [\"https://...\"],\n  \"tags\": [\"맛집\", \"강남\", \"서울\"]\n}\n\n쿠팡 상품\n{\n  \"status\": \"success\",\n  \"url\": \"https://www.coupang.com/...\",\n  \"productName\": \"애플 에어팟 프로 2세대\",\n  \"price\": 299000,\n  \"originalPrice\": 359000,\n  \"discount\": \"17%\",\n  \"rating\": 4.8,\n  \"reviewCount\": 1523,\n  \"rocketDelivery\": true,\n  \"seller\": \"쿠팡\",\n  \"images\": [\"https://...\"]\n}\n\n네이버 카페\n{\n  \"status\": \"success\",\n  \"cafeUrl\": \"https://cafe.naver.com/...\",\n  \"type\": \"popular\",\n  \"count\": 20,\n  \"posts\": [\n    {\n      \"title\": \"신입 회원 인사드립니다\",\n      \"url\": \"https://cafe.naver.com/.../12345\",\n      \"author\": \"닉네임\",\n      \"date\": \"2026-02-17\",\n      \"views\": 523,\n      \"comments\": 12\n    }\n  ]\n}\n\n뉴스 기사\n{\n  \"status\": \"success\",\n  \"url\": \"https://n.news.naver.com/...\",\n  \"title\": \"AI 시장 규모 급성장 전망\",\n  \"media\": \"조선일보\",\n  \"author\": \"홍길동 기자\",\n  \"date\": \"2026-02-17 09:30\",\n  \"content\": \"# AI 시장 규모 급성장 전망\\n\\n...\",\n  \"category\": \"IT/과학\",\n  \"images\": [\"https://...\"]\n}\n\nAnti-Bot Features\nnavigator.webdriver 숨김 — 자동화 탐지 회피\n실제 User-Agent 사용 — 모바일/데스크탑 랜덤\n인간 행동 모방 — 랜덤 딜레이, 스크롤\nStealth Plugin — Playwright extra stealth\nCloudflare 우회 — 대기 시간 자동 조정\nRate Limiting\n\n모든 스크립트는 기본적으로 사이트를 보호합니다:\n\n요청당 2-5초 랜덤 딜레이\n동일 도메인 1초당 최대 1회 요청\n429 응답 시 자동 백오프\n--fast 플래그로 딜레이 축소 가능 (주의)\nError Handling\n상황\t동작\n404\tJSON으로 에러 반환, 계속 진행\n403/차단\t재시도 (최대 3회)\n타임아웃\t대기 시간 연장 후 재시도\n로그인 필요\t경고 메시지 + 가능한 데이터만 반환\nEnvironment Variables\n# Headless 모드 끄기 (디버깅용)\nHEADLESS=false node scripts/naver-blog.js ...\n\n# 스크린샷 저장\nSCREENSHOT=true node scripts/coupang.js ...\n\n# 대기 시간 조정 (ms)\nWAIT_TIME=10000 node scripts/naver-cafe.js ...\n\n# User-Agent 커스텀\nUSER_AGENT=\"...\" node scripts/naver-news.js ...\n\nIntegration Examples\nOpenClaw Agent 통합\n// 네이버 블로그 검색\nconst result = await exec({\n  command: 'node scripts/naver-blog.js search \"AI 트렌드\" --limit 5',\n  workdir: '/path/to/skills/korean-scraper'\n});\nconst data = JSON.parse(result.stdout);\n\nBatch Processing\n# 여러 URL 일괄 처리\ncat urls.txt | while read url; do\n  node scripts/naver-blog.js extract \"$url\" >> results.jsonl\ndone\n\nLimitations\n로그인 필요 콘텐츠: 현재 비로그인 상태로만 스크래핑 (쿠팡 일부 리뷰 등)\n동적 로딩: 무한 스크롤은 기본 10개까지만 (--scroll 플래그로 확장 가능)\nCAPTCHA: 수동 우회 필요 (자동화 불가)\nIP 차단: 과도한 요청 시 일시적 차단 가능 (rate limiting 준수 필요)\nCompliance & Ethics\n✅ 공개된 정보만 수집\n✅ robots.txt 준수 (기본값)\n✅ Rate limiting으로 서버 부하 최소화\n❌ 개인정보 수집 금지\n❌ 로그인 필요 콘텐츠 무단 접근 금지\n❌ 저작권 침해 목적 사용 금지\nTroubleshooting\n문제: 403 Forbidden\n\n해결책:\n\nUser-Agent 변경 시도\n대기 시간 늘리기 (WAIT_TIME=15000)\nHeadless 모드 끄기 (HEADLESS=false)\n문제: 빈 결과 반환\n\n해결책:\n\nURL 형식 확인\n사이트 구조 변경 가능성 (셀렉터 업데이트 필요)\n로그인 필요 여부 확인\n문제: Timeout\n\n해결책:\n\nWAIT_TIME 늘리기\n인터넷 연결 확인\n사이트 접근 가능 여부 확인 (VPN 필요 등)\nMaintenance\n\n한국 사이트들은 UI를 자주 변경하므로, 셀렉터 업데이트가 필요할 수 있습니다.\n\n셀렉터 위치: scripts/ 내 각 파일 상단 SELECTORS 객체\n\nconst SELECTORS = {\n  blogTitle: '.se-title-text',\n  blogContent: '.se-main-container',\n  // ...\n};\n\nFuture Improvements\n 인스타그램 게시물 스크래핑\n 네이버 쇼핑 가격 비교\n 유튜브 한국 채널 메타데이터\n 배치 처리 최적화 (병렬 실행)\n 쿠키/세션 관리 (로그인 유지)\n Proxy 지원\nReferences\nPlaywright Official Docs\nplaywright-extra-plugin-stealth\n네이버 개발자 센터"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/mupengi-bot/korean-scraper",
    "publisherUrl": "https://clawhub.ai/mupengi-bot/korean-scraper",
    "owner": "mupengi-bot",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/korean-scraper",
    "downloadUrl": "https://openagent3.xyz/downloads/korean-scraper",
    "agentUrl": "https://openagent3.xyz/skills/korean-scraper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/korean-scraper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/korean-scraper/agent.md"
  }
}