Kodrana

Blog · · 10 min czytania

Jak działa ochrona przed scrapingiem i co to oznacza dla projektów zbierania danych

Właściciele stron internetowych inwestują w systemy antybot z kilku powodów: chronią infrastrukturę przed przeciążeniem, utrzymują przewagę konkurencyjną nad agregatorami cen i zapobiegają kradzieży treści. Dla projektów opartych na danych publicznych te zabezpieczenia oznaczają dodatkowe wyzwania techniczne i prawne, które warto zrozumieć przed rozpoczęciem prac.

Dlaczego strony stosują ochronę przed scrapingiem

Koszty infrastruktury rosną proporcjonalnie do ruchu. Gdy automatyczne zapytania przekraczają ruch organiczny dziesięciokrotnie, hosting i przepustowość mogą pochłonąć budżet przewidziany na rozwój produktu. Operator strony płaci za każde żądanie HTTP, rendering JavaScript i transfer danych, niezależnie od tego, czy odbiorcą jest człowiek czy skrypt.

Agregatory cen i porównywarki często budują swój model biznesowy na danych zeskrapowanych z setek sklepów. Dla właściciela e-commerce oznacza to, że konkurent może automatycznie dostosowywać swoje ceny w czasie rzeczywistym, co prowadzi do wojen cenowych i erozji marży. Właściciele platform marketplace'owych chronią dane o sprzedawcach i ofertach, ponieważ te zbiory stanowią ich główny kapitał konkurencyjny.

Ochrona baz danych w Polsce wynika z ustawy z dnia 27 lipca 2001 roku o ochronie baz danych, która implementuje dyrektywę unijną 96/9/WE. Producent bazy ma prawo do wyłącznego pobierania i wtórnego wykorzystania całości lub istotnej części jej zawartości. Nieuprawnione pobieranie może skutkować roszczeniami cywilnymi, choć w praktyce właściciele stron częściej stosują rozwiązania techniczne niż prawne.

Regulaminy serwisów przeważnie zabraniają automatycznego pobierania danych. Naruszenie regulaminu samo w sobie nie stanowi przestępstwa, ale może prowadzić do zablokowania dostępu, a w skrajnych przypadkach do roszczeń na podstawie prawa cywilnego. Konkretna ocena zależy od charakteru danych, skali działania i szkody po stronie właściciela serwisu.

Najpopularniejsze mechanizmy ochrony antybot

Limity zapytań i blokady IP

Rate limiting to najprostsza forma ochrony: serwer zlicza żądania z danego adresu IP w określonym przedziale czasu i po przekroczeniu progu zwraca kod HTTP 429 Too Many Requests lub 403 Forbidden. Właściciel strony może ustawić limit na poziomie kilku żądań na sekundę dla pojedynczego IP, co wystarcza do normalnego przeglądania, ale uniemożliwia masowe pobieranie. Dla projektu zbierania danych oznacza to konieczność throttlingu i rozłożenia zapytań w czasie.

Blokady oparte na geolokalizacji IP i listach ASN pozwalają odciąć ruch z centrów danych i sieci VPN, które są typowymi źródłami zautomatyzowanych zapytań. Administratorzy stron korzystają z baz GeoIP i porównują adres z zakresami należącymi do Amazon Web Services, Google Cloud, OVH i innych dostawców infrastruktury chmurowej. Taki filtr eliminuje znaczną część botów, ale również utrudnia legalną pracę narzędzi do scrapingu danych działających z serwerów.

CAPTCHA i wyzwania behawioralne

Google reCAPTCHA v2 i v3 analizują zachowanie użytkownika: ruchy myszy, czas reakcji, historię interakcji z witryną i sygnały z plików cookies. Wersja v2 wymaga zaznaczenia checkboxa lub rozwiązania zagadki wizualnej, v3 działa w tle i przypisuje każdemu żądaniu wynik od 0.0 do 1.0. Niski wynik powoduje wyświetlenie dodatkowej weryfikacji lub całkowite odrzucenie żądania. Dla automatycznego systemu oznacza to niemożność kontynuacji bez dodatkowej infrastruktury.

hCaptcha, Arkose Labs i podobne rozwiązania stosują wyzwania adaptacyjne: skomplikowane puzzle, zadania rozpoznawania obrazów lub interaktywne gry. Poziom trudności rośnie proporcjonalnie do podejrzeń o automatyzację. Przedsiębiorstwa często wybierają te systemy jako alternatywę dla Google, ponieważ dane użytkowników pozostają poza ekosystemem jednego dostawcy.

Cloudflare, DataDome i WAF

Cloudflare Bot Management to usługa działająca na poziomie CDN, jeszcze przed dotarciem żądania do serwera źródłowego. System analizuje fingerprint przeglądarki: nagłówki HTTP, kolejność wysyłanych headerów, wsparcie dla TLS, obecność atrybutów WebGL i Canvas, a także wykonuje challenge JavaScript. Typowy bot bez silnika renderującego nie przejdzie tego testu, ponieważ nie wykona kodu JavaScript zwróconego przez Cloudflare.

DataDome specjalizuje się w ochronie dla e-commerce i platform z dużym ruchem. Zbiera kilkaset sygnałów behawioralnych i technicznych, które analizuje model uczenia maszynowego trenowany na miliardach zapytań. System blokuje podejrzane IP w czasie rzeczywistym, a fałszywie pozytywne detekcje są rzadkie dzięki ciągłemu uczeniu na podstawie feedbacku. Koszt licencji DataDome dla średniego e-commerce zaczyna się od kilku tysięcy dolarów rocznie.

Web Application Firewall (WAF) od dostawców takich jak Akamai, Imperva czy AWS WAF filtruje ruch na podstawie reguł zdefiniowanych przez administratora: blokuje znane user-agenty botów, wzorce w URL sugerujące skanowanie, nietypową częstotliwość żądań do konkretnych endpointów. Reguły mogą być bardzo precyzyjne i dostosowane do specyfiki witryny, co utrudnia obejście bez dogłębnej analizy zachowania strony.

JavaScript rendering i dynamiczne ładowanie treści

Single Page Applications (SPA) budowane w React, Vue czy Angular nie zwracają gotowego HTML-a, tylko szkielet strony i kod JavaScript, który po wykonaniu w przeglądarce pobiera dane z API i renderuje widok. Prosty skrypt HTTP nie zobaczy żadnej treści, ponieważ otrzyma jedynie pustą ramkę. Wymagane jest środowisko z pełnym silnikiem renderującym: Puppeteer, Playwright lub Selenium, co wielokrotnie zwiększa zużycie zasobów i czas wykonania.

Lazy loading powoduje, że treść pojawia się dopiero po przewinięciu strony lub kliknięciu przycisku. Dane mogą być ładowane z opóźnieniem, porcjami po 20-50 rekordów, a kolejne żądania wymagają interakcji z elementami DOM. Gotowe scrapery muszą emulować te interakcje: przewijać stronę, czekać na załadowanie elementów i klikać paginację, zanim dotrą do pełnego zbioru.

Jak odpowiedzialnie prowadzić projekt oparty na danych publicznych

Oficjalne API i partnerstwa jako pierwszy wybór

Wiele platform oferuje oficjalne API dla partnerów: Allegro udostępnia REST API z dokumentacją i limitem darmowych zapytań, Google Maps Platform ma endpoint do wyszukiwania miejsc, Facebook Graph API pozwala pobierać publiczne posty stron. Korzystanie z oficjalnego interfejsu eliminuje ryzyko prawne, zapewnia stabilność działania i często daje dostęp do danych w lepszej jakości niż scraping HTML. Koszty wahają się od darmowego tieru do kilkuset dolarów miesięcznie przy dużej skali.

Gdy API nie istnieje lub ma zbyt wąski zakres, warto zapytać właściciela serwisu o możliwość współpracy. Agregatory danych płacą portalom nieruchomości za dostęp do feedów XML, a porównywarki cen zawierają umowy ze sklepami na automatyczne pobieranie katalogów. Taka umowa definiuje warunki korzystania, limity techniczne i może obejmować wynagrodzenie lub wymianę korzyści: np. linki zwrotne, widoczność marki, udostępnianie statystyk.

Zasady łagodnego scrapingu

  • Przestrzegaj pliku robots.txt. Choć nie jest prawnie wiążący w Polsce, ignorowanie dyrektyw Disallow może być interpretowane jako świadome naruszenie woli właściciela strony.
  • Ustal opóźnienie między żądaniami: 2-5 sekund dla małych witryn, 0.5-1 sekunda dla dużych portali z CDN. Monitoring cen konkurencji powinien działać w nocy lub w godzinach najmniejszego ruchu.
  • Identyfikuj się przez nagłówek User-Agent. Zamiast podszywać się pod popularną przeglądarkę, podaj nazwę projektu i kontakt. To pozwala administratorowi strony na kontakt zamiast natychmiastowej blokady.
  • Cachuj pobrane dane i nie odpytuj ponownie bez potrzeby. Jeśli ceny u konkurenta aktualizują się raz dziennie, nie ma sensu odpytywać co godzinę.
  • Ogranicz równoległość żądań. Jeden wątek to standard dla małych projektów, 2-5 równoległych połączeń to maksimum dla dużych witryn z dobrą infrastrukturą.

Publiczne dane i RODO

Zbieranie danych osobowych podlega RODO, nawet jeśli są one publicznie dostępne. Dane kontaktowe firm z katalogu firm, profile LinkedIn, ogłoszenia o pracę z numerem telefonu to dane osobowe w rozumieniu rozporządzenia. Przetwarzanie wymaga podstawy prawnej: zgody, uzasadnionego interesu lub wykonania umowy. Jeśli planujesz zbierać takie dane, skonsultuj projekt z prawnikiem specjalizującym się w RODO.

Uzasadniony interes (art. 6 ust. 1 lit. f RODO) to często wskazywana podstawa dla B2B data scrapingu, ale wymaga wyważenia interesów i praw osoby, której dane dotyczą. Wytyczne UODO podkreślają, że samo publiczne udostępnienie danych nie oznacza zgody na dowolne ich przetwarzanie. Bezpieczniej jest zbierać dane nieidentyfikowalne: ceny, specyfikacje produktów, opisy ofert bez danych kontaktowych.

Prawa autorskie chronią oryginalne utwory: opisy produktów, zdjęcia, artykuły. Masowe kopiowanie treści cudzej strony na swoją witrynę bez zgody autora narusza prawo autorskie i może skutkować pozwem. Jeśli potrzebujesz publikować dane, używaj własnych opisów, cytatów w dozwolonym zakresie lub uzyskaj licencję. Projekty ekstrakcji danych dla analityki wewnętrznej, raportów lub modeli ML zwykle nie naruszają praw autorskich, ponieważ nie publikują treści, tylko przetwarzają ją do innych celów.

Kiedy projekt napotyka zaawansowaną ochronę antybot

Cloudflare Challenge, DataDome i podobne systemy wykrywają automaty na podstawie setek sygnałów. Samo dodanie headera User-Agent ani użycie biblioteki requests w Pythonie nie wystarczy. Fingerprint przeglądarki obejmuje m.in. kolejność nagłówków HTTP (biblioteki wysyłają je alfabetycznie, przeglądarki w ustalonej kolejności specyficznej dla wersji), wsparcie dla HTTP/2 i kompresji Brotli, atrybuty Canvas i WebGL, fonty systemowe, rozdzielczość ekranu, strefę czasową.

Headless browsers (Puppeteer, Playwright) rozwiązują problem renderingu JavaScript, ale zostawiają ślady: brak właściwości navigator.webdriver, niepełna implementacja Web APIs, różnice w zachowaniu silnika JavaScript. Zaawansowane systemy antybot testują te anomalie i blokują żądania, zanim użytkownik otrzyma odpowiedź. Dostosowanie fingerprintu wymaga głębokiej wiedzy o internals silnika Chromium i ciągłego śledzenia zmian w systemach ochrony.

Residential proxy i rotacja IP to popularna metoda obchodzenia blokad geograficznych i limitów per-IP, ale wiąże się z kosztami: od 4,60 € do 13,80 € za GB transferu. Ponadto właściciele stron coraz częściej wykrywają sieci proxy na podstawie anomalii w ruchu: nagłe skoki liczby żądań z domowych IP w godzinach nocnych, brak historii cookies, identyczne wzorce kliknięć. Jakość proxy różni się drastycznie między dostawcami: tanie sieci mogą być zbudowane na zainfekowanych urządzeniach, co niesie problemy etyczne i prawne.

W praktyce próby obejścia zaawansowanej ochrony zmieniają projekt w wyścig zbrojeń, gdzie każda aktualizacja systemu antybot wymaga odpowiedzi ze strony scraperа. Koszty utrzymania rosną, a stabilność spada. Porównanie API i scrapingu często pokazuje, że oficjalna integracja jest tańsza i pewniejsza w długim terminie, nawet jeśli wymaga negocjacji z właścicielem danych.

Prawne granice scrapingu w Polsce

Prawo polskie nie zabrania scrapingu per se, ale działanie musi mieścić się w granicach wyznaczonych przez kilka ustaw. Ustawa o ochronie baz danych chroni producenta przed nieuprawnionym pobieraniem całości lub istotnej części bazy. Istotna część to pojęcie ocenne: dla małego katalogu może to być kilkadziesiąt rekordów, dla dużego portalu kilka procent zawartości. Sądy biorą pod uwagę wartość ekonomiczną pobranego fragmentu i nakład pracy włożony w stworzenie bazy.

Naruszenie regulaminu serwisu to naruszenie umowy cywilnoprawnej, nie przestępstwo. Właściciel strony może żądać zaprzestania działania, usunięcia skutków naruszenia i odszkodowania, jeśli udowodni szkodę. W praktyce polskie sądy rzadko rozstrzygają spory o scraping, ponieważ koszty procesu często przewyższają wartość roszczenia, a dowodzenie szkody wymaga opinii biegłych. Większość konfliktów kończy się blokadą techniczną lub wezwaniem do zaprzestania.

Nieuprawniony dostęp do systemu informatycznego (art. 267 Kodeksu karnego) dotyczy sytuacji, gdy osoba pokonuje zabezpieczenia: łamie hasła, wykorzystuje luki, uzyskuje dostęp do części strony przeznaczonej dla zalogowanych użytkowników bez autoryzacji. Zwykłe pobieranie publicznie dostępnych danych przez HTTP nie wypełnia znamion tego przestępstwa, pod warunkiem że nie obchodzi się zabezpieczeń technicznych ani nie podaje się za innego użytkownika.

Bezpieczny zakres działania: zbieranie danych publicznie widocznych bez logowania, respektowanie robots.txt, łagodna częstotliwość zapytań, niewykorzystywanie pobranych danych w sposób naruszający prawo autorskie lub RODO. Jeśli projekt wykracza poza te granice lub dotyczy danych wrażliwych (zdrowie, finanse, sądownictwo), warto uzyskać opinię prawnika przed rozpoczęciem prac.

Lista kontrolna przed rozpoczęciem projektu zbierania danych

  1. Sprawdź, czy istnieje oficjalne API lub możliwość zawarcia umowy z właścicielem danych. Może to zaoszczędzić miesiące pracy i eliminuje ryzyko prawne.
  2. Przeanalizuj robots.txt i regulamin serwisu. Jeśli zabraniają automatycznego pobierania, oceń ryzyko i rozważ alternatywy.
  3. Określ, jakie dane są potrzebne: czy zawierają dane osobowe, czy podlegają ochronie prawa autorskiego. Dla danych osobowych skonsultuj projekt z prawnikiem znającym RODO.
  4. Przetestuj poziom ochrony technicznej: czy strona wymaga JavaScript, czy stosuje CAPTCHA, czy blokuje zapytania z centrów danych. Studio Kodrana oferuje darmową próbkę 50-100 rekordów, co pozwala ocenić wykonalność projektu przed zobowiązaniem do pełnego wdrożenia.
  5. Zaplanuj infrastrukturę: throttling, cache, kolejki żądań, monitoring błędów. Dla projektów danych nieruchomości i podobnych o dużej skali niezbędna jest architektura zapewniająca niezawodność.
  6. Przygotuj się na zmiany: strony aktualizują strukturę HTML, dodają nowe zabezpieczenia, migrują na inne technologie. Scraper wymaga utrzymania, systemy scrapingowe na subskrypcji zapewniają naprawy w ciągu 48 godzin po wykryciu problemu.

Kiedy scraping przestaje mieć sens ekonomiczny

Gdy koszt utrzymania scraperа przekracza wartość pozyskanych danych, warto rozważyć alternatywy. Dla strony chronionej przez DataDome i wymagającej residential proxy koszt infrastruktury może sięgać kilkuset euro miesięcznie, a każda aktualizacja antybot wymaga kilku dni pracy programisty. Jeśli te same dane są dostępne przez API za 184 € miesięcznie, bilans przechyla się na stronę oficjalnej integracji.

Projekty wymagające danych w czasie rzeczywistym (real-time bidding, arbitraż cenowy) są szczególnie wrażliwe na opóźnienia i niedostępność. Scraper może zostać zablokowany w najmniej oczekiwanym momencie, a naprawa zajmie godziny. Dla takich zastosowań stabilne API lub feed dostarczany przez właściciela danych to jedyne rozsądne rozwiązanie.

Skala ma znaczenie: pobieranie kilkuset rekordów dziennie z jednego źródła to zadanie dla prostego skryptu, który działać będzie latami bez zmian. Agregowanie milionów ofert z dziesiątek serwisów marketplace wymaga zespołu, infrastruktury i ciągłego nadzoru. Koszty projektu scrapingowego rosną nieliniowo wraz ze skalą i złożonością źródeł danych.

Praktyczne podejście do projektów z zabezpieczonymi źródłami

Przed rozpoczęciem pełnego wdrożenia warto przetestować wykonalność na próbce danych. Kodrana oferuje darmowy test: wysyłasz adres strony i listę pól do zebrania, a my sprawdzamy poziom ochrony i dostarczamy 50-100 rekordów bez zobowiązania do płatności. To pozwala ocenić, czy źródło jest dostępne technicznie i czy struktura danych odpowiada potrzebom projektu. Jeśli strona okaże się niemożliwa do zescrapowania w rozsądnym koszcie, zaproponujemy alternatywy: inne źródła danych, oficjalne API lub partnerstwa.

FAQ

Czy scraping jest legalny w Polsce?

Scraping sam w sobie nie jest zakazany, ale musi respektować ustawę o ochronie baz danych, prawo autorskie i RODO. Pobieranie publicznie dostępnych danych bez logowania, w sposób łagodny dla serwera i bez naruszania praw autorskich to działanie prawnie dopuszczalne. Jeśli projekt dotyczy danych osobowych, komercyjnej republiki treści lub obchodzenia zabezpieczeń, skonsultuj go z prawnikiem.

Jak poznać, czy strona ma ochronę przed scrapingiem?

Typowe objawy to wymaganie JavaScript do wyświetlenia treści, pojawienie się CAPTCHA po kilku żądaniach, błąd 403 lub 429 przy częstszych zapytaniach, challenge page Cloudflare. Możesz przetestować stronę ręcznie: wyślij kilkanaście żądań przez curl lub requests i sprawdź odpowiedź. Studio Kodrana wykonuje taką analizę bezpłatnie w ramach testu przed wdrożeniem projektu.

Ile kosztuje zescrapowanie strony z zaawansowaną ochroną?

Jednorazowy eksport do 10 tysięcy rekordów z chronionej strony to koszt od 409 € w górę, w zależności od poziomu zabezpieczeń i złożonością struktury danych. Subskrypcja z cotygodniowymi aktualizacjami zaczyna się od 89 € miesięcznie plus jednorazowy setup, z dzienną aktualizacją od 169 € miesięcznie. Cena obejmuje naprawy w ciągu 48 godzin, gdy strona zmieni strukturę lub zabezpieczenia.

Co zrobić, gdy strona blokuje zapytania mimo łagodnego tempa?

Najpierw sprawdź robots.txt i regulamin: jeśli scraping jest wyraźnie zakazany, rozważ oficjalne API lub kontakt z właścicielem. Jeśli to nie opcja, można użyć residential proxy, dostosować fingerprint przeglądarki i dodać opóźnienia losowe. Gdy i to nie działa, lepiej poszukać alternatywnego źródła danych niż inwestować w wyścig zbrojeń z systemem antybot.

Czy mogę zbierać dane z OLX, Allegro, Otodom?

Te serwisy mają regulaminy zabraniające automatycznego pobierania danych i stosują ochronę techniczną. Allegro oferuje oficjalne API dla partnerów, co jest legalną i stabilną alternatywą. OLX i Otodom nie udostępniają API publicznie, więc scraping pozostaje w szarej strefie: technicznie możliwy, ale niezgodny z regulaminem. Dla projektów komercyjnych warto skonsultować to z prawnikiem i rozważyć partnerstwa lub alternatywne źródła.

Potrzebujesz tych danych dla swojego biznesu?

Wyślij nam stronę i pola, których potrzebujesz. Sprawdzimy je i wyślemy darmową próbkę 50–100 rekordów, zanim zapłacisz.

lub napisz bezpośrednio

Napisz do @kodrana na Telegram
Twój kontakt wykorzystamy wyłącznie do odpowiedzi na to zapytanie.
Telegram