Transfer proxy kończy się szybciej, niż zakładano
Najczęściej gigabajty idą na to, czego nie widać w wyniku pracy: obrazy, czcionki, skrypty, ponowienia i żądania w tle. Poniżej – dokąd dokładnie i jak to zmierzyć.
Zaktualizowano · Redakcja Prokso
- Transfer liczy się w obie strony, a dokładne geo podwójnie
- Najwięcej zjadają obrazy, wideo, czcionki i skrypty oraz ponowienia żądań
- Blokuj zbędne zasoby, ponownie używaj połączeń i proś o kompresję
Co oznacza błąd
W Prokso transfer liczy się w obie strony: to, co program wysyła, i to, co pobiera. Przy zwykłym scrapingu większość daje odpowiedź strony, ale przy wysyłaniu plików, formularzy czy dużych żądań do API ruch wychodzący też jest zauważalny.
Strona to nie tylko HTML. Przeglądarka lub przeglądarka antydetekcyjna pobiera wszystko, do czego strona się odwołuje: obrazy, wideo, czcionki, skrypty, reklamy i liczniki. Dlatego strona z niewielkim tekstem może ciągnąć wielokrotnie więcej danych niż sam tekst.
Kolejny mnożnik to dokładne geo. Region, miasto, ZIP lub operator (ASN) liczone są podwójnie: 1 GB takiego transferu zabiera z pakietu 2 GB. Kraj – bez dopłaty.
Przyczyny
- Zasoby stron. Obrazy, wideo, czcionki i skrypty to najcięższa część typowej strony. Przeglądarki headless w Puppeteer, Playwright i Selenium pobierają je tak samo jak zwykła przeglądarka, nawet jeśli potrzebujesz tylko tekstu.
- Ponowienia żądań. Każda próba, która zdążyła pobrać choć część strony, to też transfer. Pętla ponowień bez ograniczenia liczby prób po captchy lub błędzie 429 po cichu zjada pakiet.
- Odpowiedzi bez kompresji. Jeśli program nie wysyła nagłówka
Accept-Encoding, serwer zwraca tekst bez kompresji. Przeglądarki wysyłają go same, skrypty nie zawsze: curl prosi o kompresję tylko z opcją--compressed. - Nowe połączenie przy każdym żądaniu. Każde nowe połączenie HTTPS zaczyna się od uzgadniania TLS, a te dane też przechodzą przez proxy. Bez ponownego użycia połączeń dochodzą do każdego żądania.
- Dokładne geo bez potrzeby. Miasto, region, ZIP czy operator podwajają zużycie. Jeśli zadaniu wystarcza kraj, lepiej wyłączyć dokładne geo.
Jak to naprawić
- Policz oczekiwany wolumen: średni rozmiar strony × liczba stron × zapas na ponowienia. Do szacunku służy kalkulator transferu.
- Zmierz prawdziwą stronę: w narzędziach deweloperskich przeglądarki na karcie Network na dole widać, ile danych przesłano. Dla pojedynczego żądania curl pokaże rozmiar treści odpowiedzi bez nagłówków przez
-w "%{size_download}". - Blokuj zbędne zasoby w przeglądarce headless: w Puppeteer –
page.setRequestInterception(true)irequest.abort()dla obrazów, czcionek i mediów, w Playwright –page.route()zroute.abort(). Konfiguracja proxy – w instrukcjach Puppeteer i Playwright. - Używaj jednego połączenia do serii żądań: w Pythonie
requests.Session()ponownie wykorzystuje połączenia (zob. instrukcję Python requests). Ogranicz liczbę ponowień i dodaj między nimi przerwę. - Proś o kompresję: nagłówek
Accept-Encoding: gziplub opcja--compressedw curl. Dokładne geo włączaj tylko tam, gdzie miasto lub operator naprawdę są potrzebne; parametry loginu – w opisie bramy.
Jak sprawdzić, czy działa
Po zmianach uruchom to samo zadanie na małej próbce i porównaj saldo planu przed i po w panelu klienta. Aby pakiet nie skończył się niespodziewanie, na stronie planu można ustawić limit transferu na godzinę, dobę lub tydzień – zatrzymujący pracę albo tylko ostrzegający – i włączyć powiadomienia e-mail lub w Telegramie, gdy transfer się kończy.
Diagnoza w 2 minuty
Najpierw wklej linię do sprawdzania proxy. Jeśli tam proxy działa, przyczyna leży w programie lub jego ustawieniach. Jeśli nie - sprawdź linię z terminala:
curl -v -x "http://LOGIN:HASŁO@gw.prokso.com:823" https://api.ipify.org
- Wiersz
< HTTP/1.1 407zaraz poCONNECToznacza, że odpowiada proxy. Nazwa po kodzie, na przykładNO_USER, wskazuje przyczynę. - Proxy odpowiedziało na
CONNECTkodem 200, a potem przyszedł inny kod - proxy działa, tę odpowiedź dała strona. - Brak odpowiedzi, tylko przekroczony czas - połączenie nie dotarło do proxy: sprawdź host, port i sieć.
Instrukcje, w których pojawia się ten błąd
- Jak skonfigurować proxy w Octoparse
- Jak skonfigurować proxy w Screaming Frog SEO Spider
- Jak skonfigurować proxy w ScrapeBox
- Jak skonfigurować proxy w Apify
- Jak skonfigurować proxy w PhantomBuster
- Jak skonfigurować proxy w n8n
Przeczytaj też
Pytania i odpowiedzi (FAQ)
Czy transfer jest liczony, gdy strona zwróciła błąd?
Tak. Liczone jest wszystko, co przeszło przez proxy w obie strony, niezależnie od kodu odpowiedzi. Strona z captchą lub błędem 403 też zużywa transfer.
Dlaczego przeglądarka antydetekcyjna zużywa więcej niż skrypt?
Profil antydetekcyjny to pełna przeglądarka: pobiera wszystkie zasoby stron i wysyła własne żądania w tle. Skrypt bierze tylko to, o co poprosisz.
Czy niewykorzystany transfer przepada?
Nie. Kupiony transfer nie ma terminu ważności, więc resztę możesz wykorzystać później.
Inne błędy proxy
Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB
Rejestracja w minutę, dostęp od razu po płatności.