Back to Oh My Openagent

범용 웹 추출 — Jina Reader

packages/shared-skills/skills/ultimate-browsing/references/insane-search/jina.md

4.13.03.3 KB
Original Source

범용 웹 추출 — Jina Reader

r.jina.ai/URL 한 줄로 거의 모든 공개 URL을 마크다운으로 변환. Puppeteer 기반 실제 브라우저 렌더링 — JS SPA까지 처리. API 키 불필요. 무료: 분당 500 RPM.

기본 사용

bash
curl -s "https://r.jina.ai/{URL}"

고급 기능

JSON 구조화 출력

bash
curl -H "Accept: application/json" "https://r.jina.ai/{URL}"

반환: data.{title, description, url, content, metadata, external, usage}

핵심: external.alternate에서 사이트의 RSS URL을 자동 발견 가능.

CSS 선택자 타겟팅

bash
curl -H "X-Target-Selector: .article-body" "https://r.jina.ai/{URL}"

네비게이션/풋터 제거, 본문만 추출. 커뮤니티 게시판에서 특히 효과적.

SPA 스트리밍 모드

bash
curl -H "Accept: text/event-stream" "https://r.jina.ai/{URL}"

JS 로딩 완료까지 대기. 동적 콘텐츠가 완전히 렌더링된 최종 버전 반환.

스크린샷

bash
curl -H "X-Respond-With: screenshot" "https://r.jina.ai/{URL}"

GCS 서명 URL 반환 (4시간 유효). 비주얼 검증 용도.

PDF 처리

bash
curl -s "https://r.jina.ai/https://example.com/file.pdf"

PDF → 마크다운 자동 변환. 페이지 수 메타데이터 포함.

쿠키 전달 (인증 사이트)

bash
curl -H "X-Set-Cookie: session=abc123" "https://r.jina.ai/{URL}"

링크 보존

bash
curl -H "X-With-Links: true" "https://r.jina.ai/{URL}"

캐시 제어

bash
# 캐시 우회 (실시간 필요 시)
curl -H "X-No-Cache: true" "https://r.jina.ai/{URL}"

# 캐시 TTL 지정 (초)
curl -H "X-Cache-Tolerance: 600" "https://r.jina.ai/{URL}"

순수 텍스트 / 원본 HTML

bash
# body.innerText만
curl -H "X-Respond-With: text" "https://r.jina.ai/{URL}"

# 원본 HTML
curl -H "X-Respond-With: html" "https://r.jina.ai/{URL}"

검증된 성공 사이트

사이트결과비고
Threads성공프로필 + 포스트
클리앙성공게시글 목록 + 본문
루리웹성공게시글 목록 + 본문
뽐뿌성공게시글 + RSS도 가능
네이버 뉴스성공기사 목록 + 본문 완전
네이버 증권성공실시간 주가
긱뉴스성공토픽 목록 + 본문
44bits성공기사 목록
커리어리성공JS 렌더링으로 추출
브런치성공기사 전문
한경성공뉴스 기사
다음 뉴스성공뉴스 기사
Medium성공기사 전문 (paywall 제외)
Substack성공뉴스레터 전문
dev.to성공기사 전문
PDF (모든 URL)성공자동 변환

실패하는 사이트

사이트이유
X/Twitter402 — Syndication/oEmbed 사용 (twitter.md 참조)
Reddit차단 — JSON API 사용 (json-api.md 참조)
디시인사이드빈 본문 반환
에펨코리아HTTP 430
요즘ITCloudFront 403
네이버 쇼핑CAPTCHA
쿠팡WAF 차단

RSS 자동 발견

Jina JSON 모드의 external.alternate에서 사이트의 RSS URL이 자동 노출됨:

bash
curl -H "Accept: application/json" "https://r.jina.ai/{URL}" | \
python3 -c "import sys,json; print(json.load(sys.stdin)['data'].get('external',{}))"