Jeśli kiedykolwiek uruchomiłeś Scrapy na produkcji i po 200 żądaniach dostałeś lawinę błędów 403, wiesz dokładnie, o czym mowa. Mobile proxy Scrapy setup to jeden z najskuteczniejszych sposobów, żeby rozwiązać ten problem raz na zawsze. W tym przewodniku pokażę ci, jak zintegrować mobilne proxy 4G z frameworkiem Scrapy, skonfigurować rotację IP oraz ustawić middleware tak, by Twój spider działał nieprzerwanie. Nauczysz się:
- Jak skonfigurować proxy HTTP i SOCKS5 w Scrapy krok po kroku
- Jak napisać własny middleware do rotacji IP przez API
- Jak testować poprawność konfiguracji przed uruchomieniem scrapera na produkcji
- Dlaczego mobilne proxy 4G dają wyższy wskaźnik sukcesu niż datacenter proxy
In this guide, you will learn wszystkiego, czego potrzebujesz, żeby Twój scraper przestał być blokowany i zaczął zbierać dane w stabilny, powtarzalny sposób.

Dlaczego Mobile Proxy Scrapy Setup Bije Datacenter Proxy
Zanim przejdziemy do konfiguracji, warto zrozumieć, dlaczego właśnie mobilne proxy 4G są najlepszym wyborem dla Scrapy. Większość antybot systemów, takich jak Cloudflare, PerimeterX czy Akamai, klasyfikuje ruch na podstawie reputacji adresu IP. Adresy z datacenter mają złą reputację prawie z definicji. Setki scraperów korzystały z tych samych /24 bloków przez lata.
Mobilne proxy działają zupełnie inaczej. Każde żądanie wychodzi z prawdziwego modemu LTE podłączonego do polskiej sieci komórkowej. Twój scraper wygląda jak zwykły użytkownik przeglądający internet na telefonie. Systemy antybot nie mają podstaw, żeby Cię zablokować.
CGNAT i anonimowość w praktyce
Mobilne sieci używają mechanizmu CGNAT (Carrier-Grade NAT), co oznacza, że tysiące prawdziwych użytkowników dzieli ten sam publiczny adres IP. Nawet jeśli Twój IP zostanie tymczasowo zablokowany, rotacja na nowy adres sprawia, że wyglądasz jak zupełnie inny użytkownik z innej lokalizacji.
- Wskaźnik sukces żądań przy datacenter proxy: często poniżej 60% na chronionych domenach
- Wskaźnik sukcesu przy mobilnych proxy 4G: w naszych testach przekraczał 97% na tych samych domenach
- Czas rotacji IP w Proxy Poland: 2 sekundy przez wywołanie API
- Typ sieci: prawdziwe karty SIM LTE 4G/5G, fizyczne modemy w Polsce
Key takeaway: Jeśli scrapujesz chronione witryny jak Allegro, OLX, Google SERP czy sklepy e-commerce, mobilne proxy to nie opcja, to konieczność.
Wymagania Wstępne i Instalacja Zależności
Zanim napiszesz pierwszą linię kodu, upewnij się, że masz wszystko, czego potrzebujesz. Zakładam, że masz już działające środowisko Python 3.9 lub nowsze oraz projekt Scrapy.
Co będziesz potrzebować
- Aktywne konto w Proxy Poland z dostępem do panelu sterowania
- Dane dostępowe do proxy: host, port, login, hasło
- Python 3.9+ z zainstalowanym Scrapy 2.11+
- Biblioteka
scrapy-rotating-proxies(opcjonalnie) lub własny middleware - Dostęp do API rotacji IP (endpoint dostępny w panelu Proxy Poland)
Instalacja podstawowych pakietów jest prosta. W terminalu wykonaj:
pip install scrapy requests
Jeśli planujesz używać SOCKS5, potrzebujesz dodatkowo:
pip install scrapy[asyncio] PySocks
Warto też od razu zainstalować python-dotenv, żeby nie trzymać danych dostępowych bezpośrednio w kodzie:
pip install python-dotenv
Key takeaway: Nigdy nie hardcoduj danych logowania do proxy w repozytorium. Używaj zmiennych środowiskowych lub pliku .env dodanego do .gitignore.
Konfiguracja Proxy HTTP w settings.py
Najprostszy sposób na uruchomienie mobile proxy Scrapy to ustawienie stałego proxy w pliku settings.py. To dobry punkt startowy, zanim przejdziesz do dynamicznej rotacji.
W pliku settings.py Twojego projektu Scrapy dodaj następujące linie:
HTTPPROXY_ENABLED = True
HTTP_PROXY = "http://login:haslo@host.proxypoland.com:PORT"
HTTPS_PROXY = "http://login:haslo@host.proxypoland.com:PORT"
Scrapy automatycznie wykryje te zmienne i będzie kierować ruch przez Twoje mobilne proxy. Pamiętaj, że nawet dla HTTPS używasz protokołu http:// w adresie proxy, bo połączenie do serwera proxy jest nieszyfrowane, a szyfrowanie SSL dzieje się po tunelowaniu przez CONNECT.
Włączenie middleware HttpProxyMiddleware
Upewnij się, że middleware proxy jest aktywny. W settings.py sprawdź sekcję DOWNLOADER_MIDDLEWARES:
DOWNLOADER_MIDDLEWARES = {'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750}
- Priorytet 750 zapewnia, że middleware proxy działa po middleware retry (priorytet 550)
- Nie wyłączaj
HttpProxyMiddlewarejeśli używasz zmiennych środowiskowychHTTP_PROXY - Możesz przetestować połączenie uruchamiając spider z
scrapy crawl nazwa_spidera -s LOG_LEVEL=DEBUG
Możesz też sprawdzić swój aktualny adres IP przez narzędzie What Is My IP, żeby potwierdzić, że ruch faktycznie wychodzi przez Twoje mobilne proxy.

Konfiguracja SOCKS5 Proxy w Scrapy
Protokół SOCKS5 daje ci więcej elastyczności niż HTTP proxy. Obsługuje każdy rodzaj ruchu TCP, lepiej radzi sobie z niestandardowymi portami i często jest szybszy przy scrapowaniu witryn wymagających wielu połączeń równoległych. Proxy Poland obsługuje SOCKS5 na każdym porcie.
Konfiguracja SOCKS5 w Scrapy wymaga kilku dodatkowych kroków, bo domyślnie Scrapy nie obsługuje SOCKS5 bez dodatkowej biblioteki.
- Zainstaluj
PySocks:pip install PySocks - W
settings.pyustaw:HTTP_PROXY = "socks5://login:haslo@host.proxypoland.com:PORT" - Upewnij się, że Scrapy używa Twisted z obsługą SOCKS:
pip install scrapy[asyncio] - Przetestuj połączenie spiderem testowym odpytującym
httpbin.org/ip
Kiedy wybrać SOCKS5 zamiast HTTP
- Scrapujesz serwisy używające WebSocket lub niestandardowych protokołów
- Potrzebujesz proxy dla połączeń nie-HTTP (np. FTP, bazy danych)
- Chcesz minimalizować overhead nagłówków HTTP w proxy
- Testujesz konfigurację pod kątem wycieków DNS, co możesz sprawdzić narzędziem DNS Leak Test
Key takeaway: Dla większości projektów scraper HTTP proxy wystarczy w zupełności. SOCKS5 wybieraj świadomie, gdy masz konkretny powód techniczny.
Pisanie Middleware do Rotacji IP przez API
To jest serce każdego profesjonalnego setupu. Statyczne proxy działa, ale prawdziwą moc uwalniasz przez automatyczną rotację IP. Proxy Poland udostępnia API, które zmienia Twój publiczny adres IP w ciągu 2 sekund. Możesz to wywoływać co N żądań, po każdym błędzie 403 albo w dowolnym rytmie.
Poniżej przykład prostego middleware do rotacji IP zintegrowanego bezpośrednio ze Scrapy:
import requestsfrom scrapy import signalsfrom scrapy.downloadermiddlewares.httpproxy import HttpProxyMiddleware
Middleware przechwytuje odpowiedzi i gdy wykryje błąd 403, 429 lub 503, wywołuje endpoint rotacji IP, czeka 2 sekundy i ponawia żądanie przez nowy adres.
Struktura middleware krok po kroku
- Stwórz plik
middlewares/proxy_rotator.pyw projekcie - Zdefiniuj klasę
MobileProxyRotatorMiddlewaredziedziczącą poobject - Zaimplementuj metodę
process_response, która sprawdza kod statusu - Przy kodach błędów wywołaj
requests.get(ROTATION_API_URL)z tokenem API - Ustaw
time.sleep(2)żeby dać sieci czas na przypisanie nowego IP - Zwróć
request.copy()z flagądont_filter=Truedo ponowienia - Zarejestruj middleware w
settings.pyz priorytetem 610
Pamiętaj, żeby ustawić rozsądny limit ponowień. Bez limitu możesz wpaść w nieskończoną pętlę. W ustawieniach Scrapy dodaj RETRY_TIMES = 5 jako bezpiecznik.
Chcesz sprawdzić, czy po rotacji faktycznie dostajesz inny adres IP? Skorzystaj z naszego testu prędkości proxy, żeby też zmierzyć latencję nowego adresu po rotacji.
Testowanie i Debugowanie Połączenia Proxy
Konfiguracja jest gotowa, ale zanim wypuścisz spidera na produkcję, musisz ją przetestować. Zbyt wiele osób pomija ten krok i traci godziny na debugowanie w trakcie prawdziwego scrappingu.
Szybki test z httpbin.org
Stwórz prostego spidera testowego, który odpytuje httpbin.org/ip i httpbin.org/headers. Powinieneś zobaczyć adres IP należący do polskiej sieci komórkowej, a nie adres Twojego serwera. Możesz też sprawdzić nagłówki HTTP przez nasze narzędzie do analizy nagłówków, żeby upewnić się, że proxy nie dodaje zdradzieckich nagłówków X-Forwarded-For.
- Sprawdź, czy
originw odpowiedzi httpbin to IP z Polski, nie Twój serwer - Zweryfikuj brak nagłówka
VialubX-Forwarded-Forw odpowiedzi - Przetestuj rotację: wywołaj API zmiany IP i sprawdź, czy
httpbin.org/ipzwraca inny adres - Uruchom spidera z
CONCURRENT_REQUESTS = 1na początku, żeby łatwiej śledzić logi
Typowe błędy i jak je naprawić
Błąd ConnectionRefusedError zwykle oznacza zły port lub adres hosta. Błąd 407 Proxy Authentication Required to zły login lub hasło. Jeśli widzisz SSL: CERTIFICATE_VERIFY_FAILED, możesz tymczasowo wyłączyć weryfikację SSL w Scrapy przez DOWNLOADER_CLIENT_TLS_METHOD = 'TLSv1.2', ale to tylko dla debugowania, nie produkcji.
Key takeaway: Zawsze testuj na małym zestawie URL przed skalowaniem. Lepiej znaleźć problem na 10 żądaniach niż na 10 000.

Podsumowanie i Następne Kroki
Integracja mobilnych proxy z Scrapy nie jest skomplikowana, ale wymaga przemyślanej konfiguracji. Trzy najważniejsze rzeczy, które powinieneś zapamiętać: po pierwsze, mobile proxy Scrapy setup oparty na prawdziwych kartach SIM 4G LTE daje wskaźnik sukcesu rzędu 97% nawet na chronionych witrynach. Po drugie, rotacja IP przez API co kilkanaście lub kilkadziesiąt żądań to najskuteczniejszy sposób na uniknięcie blokad długoterminowych. Po trzecie, zawsze testuj konfigurację na małych próbkach i weryfikuj brak wycieków DNS oraz nagłówków proxy przed skalowaniem.
Proxy Poland oferuje dedykowane porty na fizycznych modemach LTE 4G/5G w Polsce, protokoły HTTP, SOCKS5 i OpenVPN, nieograniczoną przepustowość bez opłat za gigabajty oraz rotację IP w 2 sekundy przez API. Plany zaczynają się od 11 dolarów za jeden dzień dostępu. Możesz zacząć od darmowego godzinnego triala bez karty kredytowej i sprawdzić, jak Twój Scrapy spider działa z prawdziwymi mobilnymi IP. Sprawdź aktualne plany i zacznij darmowy trial już teraz.
