gik|iewicz

szukaj
Cloudflare /crawl: Jedno wywołanie API do crawlowania całej witryny

Cloudflare /crawl: Jedno wywołanie API do crawlowania całej witryny

Cloudflare wprowadził endpoint /crawl w ramach usługi Browser Rendering, który pozwala przeszukać całą witrynę internetową za pomocą jednego wywołania API. Wystarczy podać startowy adres URL, a wszystkie podstrony są automatycznie wykrywane, renderowane w przeglądarce headless i zwracane w wybranych formatach. To przełomowe rozwiązanie dla budowania baz wiedzy, treningu modeli AI i monitoringu treści.

TL;DR: Cloudflare udostępnił endpoint /crawl do automatycznego crawlowania całych witryn jednym wywołaniem API. Usługa zwraca treść w formatach HTML, Markdown lub JSON, respektuje robots.txt i kosztuje $0.09 za godzinę renderowania po wykorzystaniu 10 godzin miesięcznie w planie Paid ($5/mies.). Dla porównania, Firecrawl pobiera $47/mies. za 100 000 stron – Cloudflare pozwala zcrawlować ~12 000 stron za ~$5, co czyni go ekonomicznie bezkonkurencyjnym w dużej skali.

Jak działa endpoint /crawl Cloudflare?

Endpoint /crawl działa w modelu asynchronicznym dwuetapowym. W pierwszym kroku wysyłasz żądanie POST z adresem URL startowym, a API natychmiast zwraca identyfikator zadania. Następnie odpytujesz API za pomocą żądań GET, odbierając wyniki strumieniowo w miarę przetwarzania stron. Maksymalny czas trwania zadania to 7 dni, a wyniki są dostępne przez 14 dni po zakończeniu (Cloudflare, 2026).

Crawler automatycznie wykrywa adresy URL z trzech źródeł: strony startowej, mapy witryny (sitemap) oraz linków znalezionych na poszczególnych stronach. Domyślnie respektuje dyrektywy robots.txt, w tym crawl-delay, i identyfikuje się jako CloudflareBrowserRenderingCrawler/1.0. Wszystkie adresy zablokowane przez robots.txt są oznaczane w odpowiedzi statusem disallowed.

# Inicjacja crawlowania
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl' \
  -H 'Authorization: Bearer <apiToken>' \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://example.com/"}'

# Sprawdzenie wyników
curl -X GET 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl/{job_id}' \
  -H 'Authorization: Bearer <apiToken>'

Endpoint obsługuje trzy formaty wyjściowe: HTML (domyślny), Markdown oraz JSON. Format JSON wykorzystuje Workers AI do ekstrakcji danych strukturalnych, co dodatkowo obciąża limit użycia AI.

Citation: Endpoint /crawl Cloudflare pozwala zcrawlować całą witrynę jednym wywołaniem API, automatycznie wykrywając podstrony z sitemap i linków. Koszt to $0.09 za godzinę renderowania po wykorzystaniu 10 godzin w planie $5/mies., co przy 5 minutach na 100 stron daje ~12 000 stron za ~$5 (Cloudflare, 2026).

Ile kosztuje crawlowanie z Cloudflare?

Cennik Browser Rendering dzieli się na dwa plany. Workers Free oferuje 10 minut renderowania dziennie, 5 zadań crawlowania dziennie i maksymalnie 100 stron na zadanie. Workers Paid ($5/mies.) zawiera 10 godzin renderowania miesięcznie, a każda dodatkowa godzina kosztuje $0.09. Maksymalna liczba stron na zadanie wzrasta do 100 000, a limit żądań API to 600 na minutę (Cloudflare, 2026).

Moja analiza: Przy założeniu, że crawlowanie 100 stron zajmuje około 5 minut renderowania, plan $5/mies. pozwala zcrawlować około 12 000 stron miesięcznie bez dodatkowych kosztów. Dla porównania, Firecrawl w planie Standard ($47/mies.) oferuje 100 000 stron. W skali Cloudflare wychodzi znacznie taniej.

PlanBrowser hoursCrawlowanieKoszt dodatkowy
Workers Free10 min/dzień5 zadań/dzień, max 100 stron
Workers Paid ($5/mies.)10 godz./mies.Max 100 000 stron/zadanie$0.09/godz.

Ważna funkcja oszczędzająca koszty: parametr render: false pozwala pobrać statyczny HTML bez uruchamiania przeglądarki, co jest idealne dla stron bez JavaScriptu. W trakcie bety ten tryb jest darmowy.

Jakie parametry konfiguracyjne oferuje API?

Endpoint /crawl oferuje bogate opcje konfiguracji pozwalające precyzyjnie kontrolować zakres crawlowania. Parametr limit określa maksymalną liczbę stron (domyślnie 10, maksymalnie 100 000), depth kontroluje głębokość linków od URL startowego, a source decyduje o źródle odkrywania adresów: all (sitemap + linki), sitemaps (tylko mapa witryny) lub links (tylko linki ze stron).

curl -X POST 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl' \
  -H 'Authorization: Bearer <apiToken>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://example.com/docs/",
    "limit": 50,
    "depth": 2,
    "formats": ["markdown"],
    "render": false,
    "source": "all",
    "options": {
      "includePatterns": ["**/api/*"],
      "excludePatterns": ["*/blog/*"]
    }
  }'

Parametry includePatterns i excludePatterns pozwalają filtrować adresy URL za pomocą wzorców wildcard. maxAge kontroluje czas życia cache (maksymalnie 7 dni), a modifiedSince umożliwia inkrementalne crawlowanie – pomijanie stron niezmienionych od określonego timestampu Unix.

Citation: API /crawl obsługuje parametry limit (max 100 000 stron), depth, formats (HTML/Markdown/JSON), render, source oraz wzorce include/exclude do filtrowania URL. Funkcja modifiedSince pozwala na inkrementalne crawlowanie, pomijając niezmienione strony i oszczędzając czas oraz koszty (Cloudflare, 2026).

Czy crawler respektuje robots.txt i ochronę botów?

Tak, endpoint /crawl respektuje dyrektywy robots.txt, w tym crawl-delay, oraz Content Signals – standard pozwalający właścicielom stron wyrażać preferencje dotyczące użycia treści przez systemy AI. Wszystkie adresy, których crawlowanie jest zablokowane, są oznaczane w odpowiedzi statusem disallowed (Cloudflare, 2026).

Ważne ograniczenie: Browser Rendering nie omija CAPTCHA, wyzwań Turnstile ani innych mechanizmów ochrony przed botami. Jeśli crawlowana strona używa produktów Cloudflare takich jak Bot Management, WAF czy Turnstile, te same reguły będą stosowane do crawlera. Właściciele stron mogą jednak utworzyć regułę WAF skip, aby pozwolić Browser Rendering na dostęp.

Content Signals to nowy standard pozwalający zdefiniować w robots.txt preferencje dotyczące: search (indeksowanie wyszukiwarek), ai-input (użycie w RAG/grounding) oraz ai-train (trening modeli AI). Przykład:

User-Agent: *
Content-Signal: search=yes, ai-train=no
Allow: /

Jak Cloudflare wypada na tle konkurencji?

Cloudflare /crawl pozycjonuje się jako ekonomiczna alternatywa dla rozwiązań takich jak Firecrawl, Jina Reader czy Crawl4AI. Kluczowa różnica to rozliczanie czasowe (browser hours) zamiast per-strona, co przy dużych wolumenach daje znaczące oszczędności.

UsługaModel cenowySzacowany koszt 100k stron
Cloudflare /crawl$0.09/godz. renderowania~$42 (zakładając 5 min/100 stron)
Firecrawl Standard$47/mies.$47
Jina ReaderFreemium + pay-per-useZależnie od użycia

Analiza porównawcza: Cloudflare oferuje dodatkowo integrację z ecosystemem Workers, R2 i KV, co ułatwia budowanie zautomatyzowanych pipeline’ów danych. Tryb render: false dla stron statycznych jest w trakcie bety darmowy, co dodatkowo obniża koszty. Z kolei Firecrawl może być lepszym wyborem dla mniejszych projektów potrzebujących prostego API bez zarządzania infrastrukturą.

Główną zaletą Cloudflare jest transparentność kosztów – płacisz za czas renderowania, niezależnie od liczby stron. Przy witrynach z szybkim czasem ładowania i mało JavaScriptem, efektywność kosztowa może być wielokrotnie wyższa niż przy modelu per-strona.

Kiedy warto wybrać Cloudflare /crawl?

Wybierz Cloudflare gdy:

  • Crawdujesz duże wolumeny stron (tysiące/miesiąc)
  • Masz już infrastrukturę w ecosystemie Cloudflare
  • Potrzebujesz formatu JSON ze strukturą AI
  • Chcesz minimalizować koszty przy dużej skali

Rozważ alternatywy gdy:

  • Potrzebujesz omijać zaawansowaną ochronę anti-bot
  • Crawdujesz strony z dużo JavaScriptem (czas renderowania)
  • Wymagasz prostego SDK bez zarządzania zadaniami asynchronicznymi

Endpoint jest dostępny w otwartej becie na obu planach Workers. Dokumentacja znajduje się na stronie Cloudflare Browser Rendering.

Często Zadawane Pytania

Czy mogę crawlować strony z Cloudflare protection?

Tak, ale z ograniczeniami. Browser Rendering nie omija CAPTCHA ani wyzwań Turnstile. Jeśli crawdujesz własną stronę, możesz utworzyć regułę WAF skip z bot detection ID 128292352 aby pozwolić na dostęp.

Jaka jest maksymalna liczba stron na jedno zadanie?

W planie Workers Free maksymalnie 100 stron na zadanie i 5 zadań dziennie. W planie Workers Paid ($5/mies.) limit wzrasta do 100 000 stron na zadanie bez dziennego limitu zadań.

Czy crawlowanie inkrementalne jest możliwe?

Tak, parametr modifiedSince pozwala pomijać strony niezmienione od określonego timestampu Unix. Dodatkowo maxAge kontroluje wiek cache (maksymalnie 7 dni), co pozwala uniknąć ponownego pobierania świeżych zasobów.

Jakie formaty wyjściowe są dostępne?

API zwraca treść w trzech formatach: HTML (domyślny), Markdown oraz JSON. Format JSON wykorzystuje Workers AI do ekstrakcji danych strukturalnych i można go dostosować własnym promptem oraz schematem odpowiedzi.

Podsumowanie

Endpoint /crawl od Cloudflare to przełomowe rozwiązanie dla każdego, kto potrzebuje crawlować witryny internetowe w dużej skali. Kluczowe zalety to:

  • Jedno wywołanie API – automatyczne wykrywanie i crawlowanie całej witryny
  • Elastyczne formaty – HTML, Markdown, JSON z AI extraction
  • Niski koszt – $0.09/godz. po wykorzystaniu pakietu, tryb statyczny w becie za darmo
  • Respektowanie robots.txt – zgodność z regułami właścicieli stron
  • Inkrementalne crawlowanie – oszczędność czasu i kosztów przy powtórnych uruchomieniach

Dla porównania z konkurencją, Cloudflare oferuje bezkonkurencyjny stosunek ceny do możliwości przy dużej skali. Jeśli budujesz pipeline’y AI, bazy wiedzy lub systemy monitoringu treści, /crawl zasługuje na przetestowanie.