- Host
- gw.prokso.com
- Port
- 823 HTTP · 824 SOCKS5 — nowy IP przy każdym żądaniu · 10000–20000 stały IP na całą sesję, HTTP(S) i SOCKS5
- Login i hasło
- w panelu klienta, na stronie planu
Gotowe wiersze w potrzebnym formacie wygenerujesz w panelu klienta: wybierz kraj, typ IP i protokół.
- Host gw.prokso.com, porty 823 (HTTP), 824 (SOCKS5), 10000–20000 (stały IP, HTTP lub SOCKS5)
- Login i hasło znajdziesz w panelu klienta na stronie planu
- Sprawdzaj IP w odpowiedzi samego żądania wysłanego przez proxy: strona Mój IP w przeglądarce nie testuje Twojego skryptu
Instrukcja krok po kroku, jak podłączyć proxy Prokso w httpx. Zajmie to kilka minut.
Krok 1. Pobierz dane proxy z panelu klienta
Otwórz swój plan i skopiuj host gw.prokso.com, port, login i hasło. Port 823 to HTTP, a 824 to SOCKS5 (oba dają nowy IP przy każdym żądaniu); porty 10000–20000 utrzymują jeden IP przez całą sesję – do 120 minut i działają zarówno jako HTTP, jak i SOCKS5 (każdy port to osobny adres). Kraj ustawiasz w loginie: username__cr.ua.
Krok 2. Zainstaluj bibliotekę
pip install httpx. Dla SOCKS5: pip install "httpx[socks]". Poniższe przykłady dotyczą httpx 0.28, w którym proxy przekazuje się parametrem proxy; dawny parametr proxies został usunięty.
import httpx
PROXY = "http://USERNAME:PASSWORD@gw.prokso.com:823"
with httpx.Client(proxy=PROXY, timeout=30) as client:
r = client.get("https://api.ipify.org?format=json")
print(r.json())Krok 3. Przekaż proxy do klienta
Utwórz httpx.Client z parametrem proxy i wpisz login i hasło bezpośrednio w adres URL. Wszystkie żądania z tego klienta idą przez proxy i ponownie wykorzystują połączenia z nim – to szybsze niż osobne httpx.get dla każdego żądania.
import asyncio
import httpx
async def main():
async with httpx.AsyncClient(proxy="socks5://USERNAME:PASSWORD@gw.prokso.com:824", timeout=30) as client:
urls = ["https://api.ipify.org?format=json"] * 3
for r in await asyncio.gather(*(client.get(u) for u in urls)):
print(r.json())
asyncio.run(main())Krok 4. Żądania asynchroniczne i SOCKS5
httpx.AsyncClient przyjmuje ten sam parametr. Dla SOCKS5 zmień schemat na socks5://, a port na 824: httpx przekazuje nazwę strony do proxy, więc zapytania DNS go nie omijają.
Krok 5. Dobierz port do zadania
Do równoległego zbierania danych zostaw 823 lub 824 – każde żądanie dostanie nowy adres. Aby wysłać serię żądań z jednego IP, użyj portu ze stałym IP z zakresu 10000-20000: działa zarówno z http://, jak i z socks5://.
Krok 6. Jeśli połączenie się nie udaje
Sprawdź host gw.prokso.com, port i schemat: HTTP na 823, SOCKS5 na 824, dowolny z nich na portach 10000-20000. Błąd 407 oznacza zły login lub hasło albo koniec transferu w planie: sprawdź saldo na stronie planu w panelu klienta. Przekroczenie limitu czasu najczęściej oznacza literówkę w porcie albo klienta, który oczekuje innego protokołu. Jeśli korzystasz z listy dozwolonych IP, upewnij się, że jest na niej zewnętrzny adres właśnie tej maszyny, na której działa kod.
Krok 7. Sprawdź wynik
Uruchom przykład: skrypt wywołuje https://api.ipify.org i wypisuje IP, który widzi strona. Powinien to być adres proxy, a nie Twój. Błąd 407 oznacza zły login lub hasło albo koniec transferu w planie. Strona „Mój IP” w przeglądarce tu nie pomoże: przeglądarka łączy się bezpośrednio.
Jeśli proxy nie działa
Pytania i odpowiedzi (FAQ)
Czy httpx odczytuje proxy ze zmiennych środowiskowych?
Tak, domyślnie httpx odczytuje HTTP_PROXY i HTTPS_PROXY. Jeśli przekażesz parametr proxy, pierwszeństwo ma on. Aby zmienne nie wpływały na skrypt, utwórz klienta z trust_env=False.
Co oznacza ProxyError: 407?
Proxy nie zaakceptowało loginu lub hasła. Skopiuj linię z generatora w panelu klienta jeszcze raz i sprawdź, czy w planie został transfer.
Którego portu użyć?
Port 823 (HTTP) lub 824 (SOCKS5) daje nowy IP przy każdym żądaniu – to dobre rozwiązanie do zbierania danych. Port z zakresu 10000-20000 utrzymuje jeden IP do 120 minut – do sesji, w których logujesz się na konto. Plan pozwala na maksymalnie 1000 jednoczesnych połączeń.
Jak wybrać kraj?
Kraj jest częścią loginu proxy. Wygeneruj w panelu klienta linię dla potrzebnego kraju i użyj jej loginu w kodzie; reszta adresu pozostaje bez zmian.
Co zrobić, jeśli część żądań kończy się błędem?
Przy zbieraniu danych niektóre adresy mogą być wolne lub niedostępne. Dodaj w kodzie kilka ponowień z przerwą: na porcie 823 lub 824 każde ponowienie wychodzi z nowego adresu.