아래처럼 던지면 잘 될 때가 많습니다.
이 URL 좀 요약해줘 — https://ko.wikipedia.org/wiki/대한민국
그런데 가끔 이런 답이 돌아옵니다.
unable to fetch from news.naver.com
또는 본문은 분명 있는데 빈 결과만 옵니다. 어떤 사이트는 되고 어떤 사이트는 안 되는 이유가 무엇이고, 안 될 때는 어떻게 풀어야 할까요? 2026년 4월 28일 기준으로 URL 7개를 실제로 돌려본 결과를 정리했습니다.
도구 3가지부터 정리
웹 본문을 가져오는 도구는 단계별로 3개가 있습니다.
- WebFetch — 클로드가 기본으로 가지고 있는 도구. URL을 던지면 본문을 받아옴
- web-reader 스킬의 정적 fetch — WebFetch가 막힐 때 직접 HTTP로 받아오는 단계
- web-reader 스킬의 동적 fetch (stealth) — Playwright 헤드리스 브라우저로 실제 사용자처럼 페이지를 렌더링
위에서 아래로 내려갈수록 더 강력하지만 느려집니다. 실제 URL이 어디서 막히는지 보면 어느 단계까지 필요한지 감이 옵니다.
사례 1. 위키피디아 — WebFetch ✅
| 단계 | 결과 |
|---|---|
| WebFetch | ✅ 본문 추출 성공 |
https://ko.wikipedia.org/wiki/대한민국 페이지 본문 요약해줘
이렇게 던지면 제목과 첫 문단이 깔끔하게 추출됩니다. 정적 HTML이라 WebFetch 한 번으로 끝납니다.
같은 부류로 docs.python.org/ko/3, news.hada.io도 모두 1단계에서 통과합니다. SSR이거나 정적 페이지인 사이트는 거의 다 됩니다.
사례 2. GitHub README — WebFetch ✅
| 단계 | 결과 |
|---|---|
| WebFetch | ✅ README · 별 수 · 설치 명령 추출 |
https://github.com/anthropics/claude-code 의 README 핵심만 정리해줘
README 본문, 별 수, 설치 명령까지 그대로 추출됩니다. GitHub은 봇 친화적이고 API도 열려 있어서 어떤 도구로도 잘 됩니다.
여기까지가 WebFetch만으로 끝나는 영역입니다. 위키 · 공식 문서 · 오픈소스 README · 일반 블로그는 대부분 이쪽입니다.
사례 3. 네이버 뉴스 — WebFetch ❌ → stealth ✅
| 단계 | 결과 |
|---|---|
| WebFetch | ❌ 도메인 거부 (“unable to fetch”) |
| 정적 fetch | ⚠️ 412KB 받지만 SPA 셸, 본문 비어있음 |
| 동적 fetch (stealth) | ✅ 493KB 렌더된 HTML, 헤드라인 추출 |
https://news.naver.com/ 메인 헤드라인 모아줘
이렇게 던지면 이런 답이 돌아옵니다.
unable to fetch from news.naver.com
도메인 자체가 거부됩니다. web-reader의 정적 fetch로는 412KB짜리 HTML을 받긴 하는데, SPA 셸이라 본문이 비어 있습니다. 마지막 단계인 stealth 모드 동적 fetch까지 가야 493KB의 렌더된 HTML이 나옵니다. 이때부터 헤드라인이 정상 추출됩니다.
사례 4. 네이버 금융 종목 — WebFetch ❌ → stealth ✅
| 단계 | 결과 |
|---|---|
| WebFetch | ❌ 도메인 거부 |
| 정적 fetch | ⚠️ 197KB · 타이틀만 보이고 본문 추출 실패 |
| 동적 fetch (stealth) | ✅ 254KB 풀 렌더, 현재가 추출 |
https://finance.naver.com/item/main.naver?code=005930 삼성전자 현재가 알려줘
같은 패턴입니다. WebFetch는 도메인 차단, 정적 fetch는 셸만 받음, stealth로 254KB 풀 렌더 후 현재가 추출 가능. 네이버 계열 + SPA는 거의 다 이 패턴입니다.
여기서 핵심 한 가지. Anthropic의 WebFetch는 도메인 단위로 차단합니다. news.naver.com, finance.naver.com, wsj.com, nytimes.com은 응답 코드와 무관하게 “unable to fetch from {host}” 한 줄로 거부됩니다. WebFetch가 막혔다고 사이트 자체가 막힌 건 아니라는 점이 web-reader의 존재 이유입니다.
사례 5. 인스타그램 프로필 — stealth ⚠️ (메타까지만)
| 단계 | 결과 |
|---|---|
| WebFetch | ❌ 데이터 없음 |
| 동적 fetch (stealth) | ⚠️ 1MB HTML 받지만 og:meta까지만 |
| 실데이터 (팔로워·게시물) | ❌ 인증된 GraphQL XHR로만 로드 |
https://www.instagram.com/instagram/ 팔로워 수와 최근 게시물 가져와줘
stealth로 받으면 1MB짜리 HTML이 나오긴 합니다. 그런데 안에 들어 있는 건 og:description 메타 태그 정도. 팔로워 수와 게시물은 로그인 후 GraphQL XHR로만 로드됩니다.
stealth는 봇 차단을 우회하는 도구지 인증을 만들어 내지는 못합니다. 실제 데이터가 필요하면 Instagram Graph API나 사용자 쿠키 import가 필요합니다.
사례 6. 쿠팡 — 모든 단계 ❌
| 단계 | 결과 |
|---|---|
| WebFetch | ❌ 403 |
| 정적 fetch | ❌ curl 403 |
| 동적 fetch (stealth) | ❌ 293바이트 “Access Denied” (Akamai Edge) |
https://www.coupang.com/ 메인 베스트 상품 정리해줘
stealth 모드로도 안 됩니다. 응답이 293바이트짜리 “Access Denied” 페이지. Akamai Bot Manager가 TLS fingerprint와 JA3 핑거프린트를 검사하기 때문에 헤드리스 브라우저는 Edge에서 즉시 차단됩니다. 페이지 자체가 도달하지 않습니다.
대안은 둘 중 하나입니다.
- 사용자 본인 브라우저 쿠키를 import해서 실제 프로필로 접근 (
setup-browser-cookies) - 쿠팡 파트너스 API 같은 공식 채널
사례 7. WSJ — 페이월로 모든 단계 ❌
| 단계 | 결과 |
|---|---|
| WebFetch | ❌ “unable to fetch” |
| 정적 fetch | ❌ HTTP 401 |
| 동적 fetch (stealth) | ❌ 1.4KB 블록 페이지 |
https://www.wsj.com/ 오늘자 1면 기사 요약해줘
stealth로도 1.4KB짜리 블록 페이지만 받습니다. 응답 코드 401. 인증 헤더 없이는 서버가 본문을 안 줍니다. 이런 페이월 사이트는 정식 구독과 인증 쿠키 외에는 우회 경로가 없습니다. 블룸버그도 같은 부류입니다.
도구 선택 결정 트리
URL 입력
│
① WebFetch 시도
│ └─ 정상 본문 → 끝 (위키, GitHub, 일반 블로그)
│ └─ "unable to fetch" / 403 / 빈 응답 ↓
│
② web-reader 정적 fetch
│ └─ 본문 OK → 끝 (NYT 메인 등)
│ └─ HTML은 받지만 SPA 셸 (extract 빈 결과) ↓
│
③ web-reader 동적 fetch + stealth
│ └─ 렌더된 HTML OK → 끝 (네이버 뉴스/금융, 인스타 메타)
│ └─ "Access Denied" / 401 / 1KB 미만 ↓
│
④ 차단 메커니즘 진단
│ ├─ Akamai/Cloudflare Edge 차단 → 사용자 쿠키 import / 정식 API
│ ├─ HTTP 401/402 페이월 → 구독 + 인증 쿠키
│ ├─ 셸만 보이고 데이터는 인증 후 XHR → setup-browser-cookies
│ ├─ 캡차 → 공식 검색·제휴 API
│ ├─ 동적 인터랙션 필수 → claude-in-chrome MCP
│ ├─ WebSocket 실시간 → 공식 WS API
│ └─ PDF/이미지 → document-skills:pdf, OCR
막혔을 때 다음 단계
3단계까지 가도 안 되는 경우 우회 경로는 차단 유형에 따라 다릅니다.
- Akamai/Cloudflare Edge 차단 (쿠팡 등) → 사용자 본인 브라우저 쿠키를 web-reader 프로필로 import하거나 공식 제휴 API 사용
- HTTP 401 페이월 (WSJ, 블룸버그) → 정식 구독 후 인증 쿠키 주입
- 인증 후 XHR (인스타, LinkedIn, Gmail) → 공식 API (Instagram Graph API, LinkedIn API, Gmail API/MCP)
- 캡차 (구글 검색, 아마존 상품) → Google Custom Search API, Product Advertising API
- 동적 인터랙션 필수 (TikTok, 카카오맵) → claude-in-chrome MCP나 공식 API
- PDF·바이너리 (DART 공시) → PDF 처리 스킬 같은 전용 도구
정리
URL 하나마다 어떤 도구가 적합한지 매번 판단하는 건 피곤합니다. 위 결정 트리 순서대로 실행하면 5분 안에 답이 나옵니다.
- WebFetch가 통과하면 끝 — 위키 · 공식 문서 · GitHub · 일반 블로그
- 막히면 web-reader 스킬로 단계별 우회 — 네이버 뉴스/금융 · NYT 등 SPA 사이트
- 그래도 막히면 차단 유형을 보고 우회 경로 선택 — 쿠팡 · 인스타 · WSJ는 공식 API나 쿠키 import 영역
웹에서 정보를 가져올 때 클로드가 만능은 아닙니다. 하지만 언제 만능이고 언제 한계인지 알면 시간을 아낄 수 있습니다.
이 글은 2026년 4월 28일 기준 실측 결과입니다. 사이트의 봇 차단 정책은 자주 바뀌므로 실제 결과는 시점에 따라 달라질 수 있습니다.