# Cloudflare 의 /crawl, 단일 API 호출로 전체 웹사이트 크롤링 지원

> Clean Markdown view of GeekNews topic #27409. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27409](https://news.hada.io/topic?id=27409)
- GeekNews Markdown: [https://news.hada.io/topic/27409.md](https://news.hada.io/topic/27409.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-03-11T18:17:15+09:00
- Updated: 2026-03-11T18:17:15+09:00
- Original source: [developers.cloudflare.com](https://developers.cloudflare.com/changelog/post/2026-03-10-br-crawl-endpoint/)
- Points: 11
- Comments: 5

## Summary

Cloudflare가 **Browser Rendering의 /crawl 엔드포인트**를 공개 베타로 선보이며, 단 한 번의 API 호출로 전체 웹사이트를 자동 탐색하고 렌더링할 수 있게 했습니다. 시작 URL만 제출하면 헤드리스 브라우저가 페이지를 순차적으로 처리해 **HTML·Markdown·JSON** 형식으로 결과를 반환하며, **크롤 깊이·페이지 수·URL 패턴** 등 세밀한 범위 제어도 지원합니다. 이 기능은 모델 학습용 데이터 수집이나 **RAG 파이프라인 구축** 등 대규모 콘텐츠 분석 워크플로우에 바로 활용할 수 있습니다.

## Topic Body

- Cloudflare가 **Browser Rendering의 새로운 /crawl 엔드포인트**를 공개 베타로 제공, 단 한 번의 API 호출로 전체 웹사이트를 크롤링할 수 있음  
- 시작 URL을 제출하면 페이지를 자동으로 탐색하고 **헤드리스 브라우저로 렌더링**, 결과를 **HTML, Markdown, JSON** 형식으로 반환  
- **Workers AI** 기반의 구조화된 JSON 출력, 크롤링 깊이, 페이지 수 제한, 와일드카드 패턴 등 **범위 제어** 기능과 증분 크롤링, 정적 모드 등 다양한 기능 제공  
- **robots.txt 규칙**을 준수하며, 비정상적 트래픽을 방지하는 **crawl-delay**도 지원  
- 모델 학습, **RAG 파이프라인** 구축, 사이트 전반의 콘텐츠 리서치 및 모니터링에 활용 가능  
  
---  
### /crawl 엔드포인트 개요  
- Cloudflare의 **Browser Rendering** 서비스에 새로 추가된 **/crawl 엔드포인트**는 단일 API 호출로 전체 웹사이트를 탐색하고 콘텐츠를 수집하는 기능 제공  
  - 사용자는 시작 URL을 제출하면, 시스템이 자동으로 링크를 따라가며 페이지를 렌더링하고 결과를 반환  
  - 반환 형식은 **HTML**, **Markdown**, **구조화된 JSON** 중 선택 가능  
- 이 기능은 **공개 베타(open beta)** 상태로 제공되며, **Workers Free 및 Paid 플랜** 모두에서 사용 가능  
- 크롤 작업은 **비동기(asynchronous)** 방식으로 수행됨  
  - URL을 제출하면 **job ID**를 받으며, 이후 처리 완료 시점에 결과를 조회할 수 있음  
  - 페이지는 순차적으로 처리되며, 완료된 결과를 단계적으로 확인 가능  
  
### 주요 기능  
- **다중 출력 형식 지원**  
  - HTML, Markdown, JSON 등 다양한 형식으로 결과 반환  
  - JSON 형식은 **Workers AI**를 통해 구조화된 데이터로 제공  
- **크롤 범위 제어(crawl scope controls)**  
  - **크롤 깊이(depth)**, **페이지 수 제한**, **URL 패턴 포함/제외 설정** 가능  
- **자동 페이지 탐색(automatic page discovery)**  
  - **사이트맵(sitemap)**, **페이지 링크**, 또는 두 가지 모두를 기반으로 URL 자동 탐색  
- **증분 크롤링(incremental crawling)**  
  - `modifiedSince`와 `maxAge` 파라미터를 사용해 변경되지 않은 페이지를 건너뛰어 시간과 비용 절감  
- **정적 모드(static mode)**  
  - `render: false` 설정 시 브라우저를 실행하지 않고 **정적 HTML만 가져오기**, 정적 사이트의 빠른 크롤링 가능  
- **정상적인 봇 동작(well-behaved bot)**  
  - **robots.txt**의 지침을 준수하며, **crawl-delay** 설정도 인식  
  
### 활용 및 참고 문서  
- 이 엔드포인트는 **모델 학습 데이터 수집**, **RAG 파이프라인 구축**, **사이트 콘텐츠 연구 및 모니터링**에 유용  
- 사용자는 [crawl endpoint 문서](https://developers.cloudflare.com/browser-rendering/rest-api/crawl-endpoint/)를 참고해 설정 가능  
- 자신의 사이트를 크롤링 대상으로 설정할 경우, [robots.txt 및 sitemap 모범 사례](https://developers.cloudflare.com/browser-rendering/reference/robots-txt/)를 검토해야 함  
  
### 사용 가능 플랜  
- Workers **Free 및 Paid 플랜** 모두에서 사용 가능

## Comments



### Comment 52843

- Author: hmmhmmhm
- Created: 2026-03-11T18:59:54+09:00
- Points: 1

가볍게 써봤는데 봇차단은 못 뚫는 것 같아요, 전 아직까진 apify 나 zyte 를 애용하게 될듯..ㅎㅎ

### Comment 52842

- Author: xguru
- Created: 2026-03-11T18:57:17+09:00
- Points: 1

이거 Cloudflare 봇 차단 기능 도 뚫나요?  
창도 팔고 방패도 파는건가??  
뭔가 이상해요 ㅎ

### Comment 52922

- Author: eoeoe
- Created: 2026-03-12T22:34:02+09:00
- Points: 1
- Parent comment: 52842
- Depth: 1

모두의 마블 시작이네요 ㅋㅋㅋ  
무슨 카드를 방어하는 무슨 능력을 무효화하는 무슨 특수능력의....

### Comment 52845

- Author: cnaa97
- Created: 2026-03-11T19:41:02+09:00
- Points: 1
- Parent comment: 52842
- Depth: 1

ㅋㅋㅋㅋ뭔가 웃기네요

### Comment 52840

- Author: neo
- Created: 2026-03-11T18:17:15+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47329557) 
- 내 경험상 Cloudflare로 보호된 페이지에서는 이게 **작동하지 않음**  
  아쉽게도, 문제를 스스로 만들고 다시 해결책을 파는 셈이 됨  
  - Azure의 **bot protection**만 통과하면 괜찮을지도 모름  

- Cloudflare가 프록시를 사용하는 웹사이트의 **미리 스크랩된 버전**을 호스팅하지 않는 게 의외임  
  예를 들어 [https://www.example.com/cdn-cgi/cached-contents.json](https://www.example.com/cdn-cgi/cached-contents.json) 같은 형태로 제공할 수도 있을 텐데, 이미 캐시에 콘텐츠가 있으니까 굳이 스크래핑 서비스나 API를 거칠 필요가 없다고 생각함  
  물론 그렇게 하지 않는 이유도 있겠지만, 기본 옵션으로 제공하지 않는 게 놀라움  
  - 이런 **캐시 덤프**를 공개하는 건 원본의 프라이버시와 저작권 가정을 완전히 깨뜨림  
    접근 제어를 걸 수도 있겠지만, 그건 결국 아무도 원하지 않은 **복잡한 CDN API**를 새로 만드는 셈이고, 법적 문제도 생김  
    “편리한 JSON”에서 “AI 스크래퍼에게 사이트 전체를 넘기는” 건 한 끗 차이임  
  - JSON 변환은 CPU를 쓰고, 결과를 저장하면 캐시 공간이 **두 배로 늘어남**  
    요청이 있을 때만 변환하면 원본 요청을 줄이면서도 캐시 효율을 유지할 수 있음  
    내가 CDN에서 일할 때는 캐시 히트율을 높이기 위해 ‘**second hit caching**’을 썼음 — 두 번째 요청이 들어올 때만 캐시에 저장하는 방식임  
  - 완전히 같은 건 아니지만, Cloudflare는 이미 비슷한 기능을 제공 중임  
    [Markdown for Agents](https://blog.cloudflare.com/markdown-for-agents/) 기능을 켜면, AI 시스템이 `text/markdown`을 요청할 때 HTML을 **실시간으로 Markdown으로 변환**해줌  
  - 사실 내부적으로는 이미 이런 식으로 **공개 콘텐츠를 캐시 기반으로 제공**하고 있을 가능성도 있음  
  - 단, 이런 방식은 단순한 사이트에는 통하겠지만, **SPA 같은 복잡한 사이트**는 여전히 브라우저 렌더링이 필요한 스크래핑 서비스가 필요함  

- Cloudflare가 **스크래핑 방어책**을 팔면서 동시에 스크래핑 서비스를 파는 게 마치 **조직폭력배 같음**  
  인터넷 전반에 걸친 영향력 덕분에 가능한 일임  
  - 그렇지 않음. [공식 문서](https://developers.cloudflare.com/browser-rendering/rest-api/crawl-endpoint/#robotstxt-and-bot-protection)에 설명되어 있음  
  - 무료 DNS는 전체의 일부일 뿐이고, 진짜 힘은 **캐싱·라우팅·DDoS 방어 서비스**에 있음  
    DNS는 데이터 수집과 ‘착한 이미지’용임  
  - 단순히 스크래핑 방어를 판 게 아니라, **웹 기반 DDoS 방어**를 판 것임  
  - Cloudflare는 **퍼블리셔와 AI 기업 사이의 중개자** 역할을 하려는 듯함  
    퍼블리셔가 Cloudflare 뒤에 있고, AI 기업이 데이터를 원하면 Cloudflare를 통해 유료로 접근하게 만드는 구조임  
    일반 사용자가 아니라, AI 기업이 주요 고객층임  
  - `/crawl` 엔드포인트는 `robots.txt`를 존중함  
    즉, 크롤링 금지된 URL은 응답에 `"status": "disallowed"`로 표시됨  

- 구조화된 **crawl endpoint**를 노출하는 건 `robots.txt`나 `sitemap`의 자연스러운 진화처럼 느껴짐  
  더 많은 사이트가 이런 **기계 판독용 진입점**을 제공하면, 인덱싱이 훨씬 효율적일 것임  
  지금은 크롤러들이 같은 구조를 계속 재탐색하느라 낭비가 많음  
  - REST를 계속 썼다면 인덱싱 낭비가 훨씬 줄었을 것 같음  
    나는 API를 **사람 중심으로 설계**하고, LLM 제공자가 그 위에서 최적화하도록 하는 쪽을 선호함  
  - 사실 **semantic HTML**이 이미 그 역할을 하고 있음  
    HTML과 DOM은 본질적으로 **기계가 읽기 위한 구조**임  
    새로운 걸 발명할 필요 없이, 기존 기술을 제대로 활용하면 됨  
  - 비효율적인 크롤링으로 이득을 보는 건 **anti-bot 솔루션 업체뿐**임  
  - 하지만 이런 구조는 **공급망 공격**을 악화시킬 수도 있음  
    사람에게는 정상 페이지를, 봇에게는 다른 페이지를 보여주는 식으로 악용될 수 있음  
  - 결국 크롤러와 사람에게 다른 콘텐츠를 보여주는 건 근본적인 문제를 낳음  

- **웹 아카이빙** 용도로 쓸 수 있었을 텐데, WARC 포맷 지원이 없는 게 아쉬움  
  기자나 연구자에게 유용했을 것임  

- 원본 서버는 여전히 Cloudflare의 **Browser Rendering 요청을 감지하고 차단**할 수 있음  
  `CF-Worker` 헤더로 구분 가능하고, WAF 규칙이나 미들웨어에서 필터링 가능함  
  다만 이 요청들은 Cloudflare ASN 13335에서 오며 **낮은 bot score**를 가지므로, 단순한 점수 기반 방어는 통하지 않음  
  결국 **애플리케이션 레벨의 속도 제한과 행위 분석**이 더 효과적임  
  구조적 충돌은 존재하지만, 검색엔진이 웹마스터 도구를 제공하는 것과 비슷한 상황임  
  - 그들은 `robots.txt`를 따르니, 그게 가장 간단한 방법임  

- 이 **크롤러가 bot 차단 로직 앞에서 동작하는지 뒤에서 동작하는지** 궁금했음  
  - 앞단에서 동작함 — [공식 문서](https://developers.cloudflare.com/browser-rendering/rest-api/crawl-endpoint/#robotstxt-and-bot-protection) 참고  

- 내 사이트의 **잘 크롤된 버전**을 제공할 수 있으면 좋겠다고 생각했음  
  사이트 관리자에게 그런 기능을 제공하면, 크롤러들이 단순히 전송 비용만 내고 접근할 수 있을 텐데  
  직접 내 사이트를 대상으로 크롤 잡을 돌리고, `static.` 서브도메인으로 제공하는 식으로 구현할 수도 있을 듯함  
  - 하지만 그게 어떤 용도인지 잘 모르겠음  
    사이트가 정적이라면 그냥 HTML로 렌더링해서 호스팅하면 되고, 동적이라면 스냅샷이 무슨 의미가 있을지 의문임  
    캐싱을 추가하는 게 더 나은 접근일 수도 있음  

- Cloudflare는 요즘 **멋진 기능들을 다 가져가는 느낌**임  
  AWS는 뭐 하고 있는지 궁금함  

- 이번 기능은 정말 인상적임  
  Cloudflare가 **미래의 방향으로 미리 움직이고 있음**
