Jak uniknąć bana IP: zasady przy scrapingu i pracy z kontami

Dlaczego strony ograniczają adresy, po jakich błędach to poznać i jak trzymać się zasad strony przy scrapingu i pracy z kontami.

Redakcja Prokso 6 min czytania
Jak uniknąć bana IP: zasady przy scrapingu i pracy z kontami
W skrócie
  • Strony ograniczają adresy za zbyt częste żądania, podejrzane podsieci i adresy z centrów danych
  • Błędy 429 i 403 oraz captche to sygnał, żeby zwolnić, a nie naciskać mocniej
  • Spokojne tempo, przerwy, pamięć podręczna i oficjalne API ograniczają blokady skuteczniej niż zmiana adresów
  • Rotacja sprawdza się przy zbieraniu danych, stały adres – przy kontach
  • Proxy nie znoszą zasad strony: ograniczenia wynikające z regulaminu platformy dotyczą każdego adresu

Blokada IP prawie nigdy nie jest przypadkowa. Strona widzi z adresu zachowanie, które jej się nie podoba, i ogranicza dostęp. Czasem na minutę, czasem na dobę, czasem od razu dla całej podsieci.

Dobra wiadomość: większość ograniczeń jest przewidywalna. Jeśli rozumiesz, dlaczego strony je nakładają, możesz pracować spokojnie i zgodnie z zasadami. Poniżej: dlaczego strony ograniczają adresy, jak to rozpoznać i co robić, żeby uniknąć kłopotów.

Dlaczego strony ograniczają adresy

Pierwszy powód to częstotliwość. Większość stron ma limit żądań (rate limit): ile żądań z jednego adresu są gotowe przyjąć na minutę lub godzinę. Skrypt, który otwiera dziesiątki stron na sekundę, trafia na ten limit niemal od razu.

Drugi to nadużycia. Masowe rejestracje, spam, odgadywanie haseł, obciążenie przypominające atak. Adresy, z których to szło, trafiają do wspólnych baz i inne strony też zaczynają traktować je ostrożnie.

Trzeci to reputacja podsieci. Jeśli z sąsiednich adresów w tym samym bloku jest dużo podejrzanej aktywności, strona może ograniczyć cały blok. Czwarty to typ sieci: numer ASN pokazuje, że adres należy do centrum danych, a niektóre strony domyślnie nie ufają takim adresom.

Jak poznać, że Cię ograniczono

Strona rzadko mówi wprost „zablokowaliśmy Cię”. Zwykle poznasz to po odpowiedziach:

ObjawCo zwykle oznaczaCo zrobić
Błąd 429Zbyt wiele żądań w krótkim czasieZrób przerwę, zwolnij i zmniejsz liczbę wątków
Błąd 403Odmowa dostępu: adres, typ sieci lub zasada stronySprawdź adres i typ proxy, przeczytaj jeszcze raz zasady strony
Captcha zamiast stronyStrona wątpi, że odwiedza ją człowiekZwolnij, sprawdź profil przeglądarki
Cloudflare 1015Zadziałał limit żądań po stronie zabezpieczeń stronyOdczekaj i wróć z mniejszą częstotliwością
Pusta strona lub inne daneStrona podaje botom uproszczoną wersjęPorównaj z odpowiedzią w zwykłej przeglądarce

Więcej o każdym błędzie: 429 Too Many Requests, 403 Forbidden i Cloudflare 1015. Jeśli captchę lub 403 dostajesz na stronie, którą po prostu otworzyłeś w przeglądarce, sprawdź, czy nie ma jej na liście stron zamkniętych dla wszystkich.

Tempo jest ważniejsze niż liczba adresów

Najczęstszy błąd to próba rozwiązania ograniczeń większą liczbą adresów. Strona zwraca 429, a skrypt dokłada wątków i działa dalej. To tylko zaostrza ograniczenia: strona widzi falę identycznych żądań i przykręca śrubę wszystkim.

Działa odwrotne podejście. Im spokojniej Twój skrypt zachowuje się na stronie, tym rzadziej trafia na ograniczenia. Oto zasady na początek:

  • Rób przerwy między żądaniami i niech będą losowe, na przykład od 2 do 6 sekund, a nie równo co sekundę.
  • Ogranicz liczbę jednoczesnych wątków na jedną stronę. Zacznij od kilku i zwiększaj tylko wtedy, gdy nie ma błędów.
  • Zapisuj w pamięci podręcznej to, co już pobrałeś. Nie otwieraj tej samej strony dwa razy dziennie, jeśli się nie zmienia.
  • Zbieraj dane w nocy według strefy czasowej strony, gdy ma mniej żywych odwiedzających.
  • Zatrzymuj się od razu przy 429 i respektuj nagłówek Retry-After, jeśli jest.

Techniczny limit w Prokso to do 1000 jednoczesnych połączeń na plan. To zapas na różne zadania, a nie zalecenie: dla jednej strony rozsądna liczba wątków jest zwykle wielokrotnie mniejsza.

Przedstaw się stronie uczciwie

Wiele skryptów domyślnie wysyła pusty lub techniczny User-Agent. Strona nie lubi, gdy nie wie, kto ją odwiedza. Przy jawnym zbieraniu danych pomaga wpisanie w nagłówek zrozumiałej nazwy programu i sposobu kontaktu.

Jeśli regularnie zbierasz dane z jednej strony, czasem łatwiej napisać do jej właścicieli. Małe strony często same proponują eksport lub dogodną porę na przeglądanie. To całkowicie zdejmuje temat ograniczeń i oszczędza transfer obu stronom.

Oficjalna droga, jeśli istnieje

Zanim napiszesz scraper, sprawdź, czy strona ma otwarte API lub eksport danych. Wiele sklepów, katalogów i serwisów udostępnia dane przez API z jasnymi limitami. To szybsze, zużywa mniej transferu i nie łamie żadnych zasad.

Jeśli API nie ma, przeczytaj robots.txt i regulamin. W robots.txt strona wskazuje, które sekcje mogą przeglądać roboty, a czasem także zalecaną przerwę między żądaniami. Regulamin mówi, czy zbieranie danych jest w ogóle dozwolone. Jeśli strona wprost zabrania zbierania, proxy tego nie zmieniają.

Rotacja czy stały adres

Tryb zmiany adresu dobiera się do zadania. Proxy rotacyjne daje nowy adres przy każdym żądaniu: w Prokso to port 823 dla HTTP i 824 dla SOCKS5. Obciążenie rozkłada się na pulę i żaden pojedynczy adres nie przyjmuje całego strumienia.

Stały adres utrzymuje się przez czas sesji: porty od 10000 do 20000, z których każdy trzyma jeden adres od 1 do 120 minut. Potrzebujesz go, gdy strona oczekuje tego samego odwiedzającego, na przykład przy logowaniu na konto lub wieloetapowym składaniu zamówienia.

ZadanieTrybDlaczego
Zbieranie ogólnodostępnych stron kataloguRotacja, port 823 lub 824Żądania są niezależne, obciążenie się rozkłada
Logowanie na konto i praca na nimPort sticky 10000-20000Platforma widzi jednego stabilnego użytkownika
Proces wieloetapowy: wyszukiwanie, filtr, karta produktuPort sticky na czas trwania krokuStrona wiąże kroki z jedną sesją
Sprawdzanie wyników wyszukiwania z różnych miastOsobny port sticky dla każdego miastaWynik nie skacze między żądaniami

Rotacja nie powinna stać się sposobem na obejście limitu strony. Jeśli ten sam zalew żądań rozdzielisz na sto adresów, strona i tak to zauważy po innych oznakach: ta sama przeglądarka, te same ścieżki, te same odstępy.

Dla kont: spójny profil

Przy kontach blokada IP rzadko dotyczy samego adresu. Platforma patrzy na cały obraz: adres, przeglądarkę, strefę czasową, język, historię logowań. Jeśli coś się nie zgadza, prosi o weryfikację lub ogranicza logowanie.

  • Jedno konto, jeden profil przeglądarki i jeden port sticky.
  • Adres z kraju konta. Dla konta z Kijowa – adres ukraiński, dla polskiego sklepu – polski.
  • Strefa czasowa i język przeglądarki zgodne z krajem adresu.
  • Żadnej nagłej zmiany kraju dla konta, które od dawna jest aktywne.
  • Adresy domowe lub mobilne dla platform, które surowo traktują centra danych.

Jak widzi Cię strona, sprawdzisz na stronie mój IP: pokazuje kraj adresu, strefę czasową i wycieki WebRTC.

Co zrobić, jeśli już Cię ograniczono

  1. Zatrzymaj zadanie. Ponowne żądania w odpowiedzi na 429 lub 403 przedłużają ograniczenie.
  2. Odczekaj. Limity żądań zwykle znikają same w ciągu minut lub godzin.
  3. Znajdź przyczynę: tempo, liczba wątków, typ adresu lub zasady strony.
  4. Jeśli sam adres ma złą reputację, zmień go: weź inny port lub nową sesję. W ustawieniach puli jest filtr anonimowości, który odsiewa adresy oznaczone już przez strony jako proxy lub VPN.
  5. Wróć w wolniejszym tempie i przetestuj na małej próbce, zanim uruchomisz całość.

Dlaczego centra danych są ograniczane częściej

Adresy z centrów danych występują blokami, a ich właściciela widać po ASN. Strona, która nie spodziewa się robotów, może zamknąć takie sieci w całości. Jeśli strona zwraca 403 i captche Twoim adresom z centrum danych nawet przy spokojnym tempie, przetestuj to samo zadanie na rezydencjalnych. Więcej w artykule proxy rezydencjalne czy serwerowe.

Pamiętaj, że pula jest wspólna: przed Tobą z adresu mógł korzystać inny klient. Dlatego czasem ograniczenie przychodzi już przy pierwszym żądaniu, nie z Twojej winy. W takim przypadku pomaga zmiana adresu, a nie powtarzanie żądania.

I na koniec: prowadź prosty dziennik. Zapisuj, ile żądań na minutę poszło do strony, ile było błędów i o jakiej porze. Po tygodniu zobaczysz, przy jakim tempie strona odpowiada spokojnie, i ustawisz to tempo na stałe w ustawieniach skryptu.

Pytania i odpowiedzi (FAQ)

Czy da się na pewno uniknąć blokady IP?

Nie. Każda strona sama decyduje, kogo ograniczyć, a zasady się zmieniają. Ryzyko możesz zmniejszyć: pracuj w rozsądnym tempie, przestrzegaj zasad strony i nie twórz zbędnego obciążenia.

Co oznacza błąd 429?

Strona informuje, że z Twojego adresu przyszło zbyt wiele żądań w krótkim czasie. Trzeba zrobić przerwę i zmniejszyć częstotliwość żądań. W odpowiedzi często jest nagłówek Retry-After, który podpowiada, ile odczekać.

Czy rotacja pomoże, jeśli strona zwraca 429?

Rotacja rozkłada żądania na różne adresy, ale nie znosi limitów strony. Jeśli po prostu będziesz kontynuować z tą samą intensywnością, ograniczenia wrócą. Najpierw zwolnij, potem zdecyduj, czy rotacja jest potrzebna.

Dlaczego zablokowano mnie już przy pierwszym żądaniu?

Adres mógł już mieć złą reputację: pula jest wspólna i wcześniej korzystał z niego ktoś inny. Inny powód: strona filtruje adresy z centrów danych. Spróbuj innego adresu albo typu rezydencjalnego.

Czy muszę przestrzegać robots.txt, jeśli pracuję przez proxy?

Tak. Proxy zmienia Twój adres, ale nie zmienia zasad strony. robots.txt i regulamin dotyczą każdego adresu i to pod nie warto planować zbieranie danych.

Przeczytaj też

19.10.20266 min czytania

IPv4 czy IPv6: co warto wiedzieć o proxy

Czym IPv4 różni się od IPv6, dlaczego proxy IPv6 są tanie, ale nie otwierają każdej strony, jak sprawdzić adres i nie dopuścić do wycieku przez IPv6.