Bez KYC — bez dokumentu tożsamości, bez selfie, bez dokumentów · Płać w kryptowalutach: BTC, USDT, USDC, ETH, SOL, LTC · Doładuj od 25 USD
Język: Polski
Zobacz ceny

Poradnik · Python

Python Requests ze statycznym proxy

Zbuduj adres URL proxy z czterech wartości swojego IP, przekaż go dla http i https, ustaw limity czasu i sprawdź IP wyjściowe. Przetestowano 19 października 2026.

Ostatnia aktualizacja: · 5 min czytania

Szybka odpowiedź

Jak używać Python Requests ze statycznym proxy?

Aby używać Python Requests ze statycznym proxy, zbuduj URL proxy z hosta, portu, nazwy użytkownika i hasła swojego IP. Przekaż go dla obu kluczy http i https w proxies=, ustaw timeout i sprawdź wyjściowe IP na api.ipify.org. SteadyProxy statyczne IP kosztują 2,24 USD za 30 dni według stanu na październik 2026, bez KYC i z płatnością krypto.

Jakie są najważniejsze informacje?

Instalacjapython -m pip install requests (SOCKS5: requests[socks])
URL proxy HTTPhttp://USERNAME:PASSWORD@host:port, for both the http and https keys
URL proxy SOCKS5socks5h://USERNAME:PASSWORD@host:port (domyślny port SOCKS5 7778)
Znaki specjalneZakoduj nazwę użytkownika i hasło przez URL za pomocą urllib.parse.quote
Proxy ze zmiennych środowiskowychsession.trust_env = False ignoruje HTTP_PROXY ustawione gdzie indziej
Timeouty(10, 30): 10 s na połączenie, 30 s na odczyt, w naszych przykładach
TestowanoPython 3.14 i Requests 2.34, 19 października 2026, przez testowe proxy chronione hasłem

Jak wysłać żądanie przez jedno statyczne proxy?

Każde statyczne IP ma własny host, port, nazwę użytkownika i hasło w Twoim panelu. Umieść je w zmiennych środowiskowych, a nie w kodzie. Poniższy skrypt buduje URL proxy, wysyła jedno żądanie do api.ipify.org i zatrzymuje się, jeśli wyjściowe IP nie jest tym, którego oczekujesz. Następnie odczytuje nazwę sieci z ipinfo.io. Przy błędnym haśle Requests zgłasza ProxyError z komunikatem 407 Proxy Authentication Required, jak pokazał nasz test.

python_requests.py: jedno statyczne proxy z kontrolą wyjściowego IP
"""Python Requests through one static proxy, with a check of the exit IP.

Install: python -m pip install requests
"""
import os
from urllib.parse import quote

import requests

HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_PORT", "7777")
USER = quote(os.environ.get("PROXY_USER", "USERNAME"), safe="")
PASSWORD = quote(os.environ.get("PROXY_PASS", "PASSWORD"), safe="")
EXPECTED_IP = os.environ.get("EXPECTED_IP")  # the static IP listed in your dashboard

# The proxy URL starts with http:// even for https:// sites (Requests opens a CONNECT tunnel)
PROXY = "http://" + USER + ":" + PASSWORD + "@" + HOST + ":" + PORT
PROXIES = {"http": PROXY, "https": PROXY}

with requests.Session() as session:
    session.trust_env = False  # ignore HTTP_PROXY / HTTPS_PROXY set elsewhere on the machine
    response = session.get("https://api.ipify.org?format=json", proxies=PROXIES, timeout=(10, 30))
    response.raise_for_status()
    exit_ip = response.json()["ip"]
    print("Exit IP:", exit_ip)
    if EXPECTED_IP and exit_ip != EXPECTED_IP:
        raise SystemExit("Exit IP differs from the static IP you expected")

    page = session.get("https://ipinfo.io/json", proxies=PROXIES, timeout=(10, 30))
    page.raise_for_status()
    print("Network:", page.json().get("org"), "-", page.json().get("country"))

Dlaczego URL proxy to http:// dla stron https://?

Kluczem słownika proxies jest schemat docelowej strony; wartością jest adres proxy. Dla strony https:// Requests prosi proxy HTTP o otwarcie tunelu CONNECT, a następnie prowadzi przez niego TLS do strony. Proxy nigdy nie widzi odszyfrowanej strony. Dlatego oba klucze wskazują ten sam URL proxy http://. Pozostaw włączoną weryfikację certyfikatów: nigdy nie ustawiaj verify=False, żeby pozbyć się błędu proxy.

Jak przypisać każdemu kontu własne statyczne IP?

Przypisz każde konto lub zadanie do jednego IP i zbuduj jedną Session na każde przypisanie. Session przechowuje cookies i ponownie używa połączeń, a przy trust_env = False jej ustawienie proxies nie jest zastępowane przez zmienne środowiskowe. Poniższy przykład odczytuje jedną linię na IP, w kolejności host, port, nazwa użytkownika, hasło, które możesz skopiować z czterech wartości w swoim panelu.

python_per_account.py: jedna Session na statyczne IP
"""One static IP per account or per job with Python Requests.

Each line holds the four values shown for one IP in your dashboard:
host:port:username:password
"""
import os
from urllib.parse import quote

import requests

STATIC_IPS = {
    "store-uk": os.environ.get("PROXY_STORE_UK", "gw.steadyproxy.com:7777:USERNAME:PASSWORD"),
    "store-de": os.environ.get("PROXY_STORE_DE", "gw.steadyproxy.com:7777:USERNAME:PASSWORD"),
}


def session_for(name):
    host, port, user, password = STATIC_IPS[name].split(":", 3)
    proxy = "http://" + quote(user, safe="") + ":" + quote(password, safe="") + "@" + host + ":" + port
    session = requests.Session()
    session.trust_env = False
    session.proxies = {"http": proxy, "https": proxy}
    return session


for account in STATIC_IPS:
    with session_for(account) as s:
        ip = s.get("https://api.ipify.org", timeout=(10, 30)).text
        print(account, "->", ip)

Jak używać SOCKS5 zamiast HTTP?

Zainstaluj requests[socks] i zamień http:// na socks5h://, a port HTTP na port SOCKS5. Litera h sprawia, że proxy rozwiązuje nazwy hostów, więc odpowiedzi DNS pasują do kraju IP. Reszta kodu pozostaje taka sama. Kompletny, przetestowany przykład znajdziesz w przewodniku po statycznym proxy SOCKS5. Oba porty jednego statycznego IP prowadzą do tego samego wyjściowego IP.

Co oznaczają typowe błędy?

Każdy błąd wskazuje na jedną warstwę.

  • ProxyError z 407: błędna nazwa użytkownika lub hasło albo ta maszyna nie jest na Twojej liście dozwolonych.
  • ConnectTimeout: błędny host lub port albo zapora po Twojej stronie blokuje ruch wychodzący do portu proxy.
  • ReadTimeout: cel lub ścieżka jest wolna; spróbuj ponownie później i zachowaj timeout odczytu.
  • SSLError: problem z certyfikatem po stronie celu lub Twojej maszyny; nie wyłączaj weryfikacji.
  • 403 lub 429 od celu: strona odrzuciła żądanie lub ograniczyła jego częstotliwość; zwolnij tempo.

Jeśli jedno IP zawodzi przy każdym żądaniu przez godzinę, skontaktuj się z pomocą techniczną. Nasza zasada wymiany: Jeśli IP nie działa, napisz do pomocy technicznej: naprawimy je lub wymienimy na inne IP w tym samym kraju, jeśli pozwolą na to zapasy.

O co jeszcze ludzie pytają w kontekście Pythona i statycznych proxy?

Dlaczego ustawiam oba klucze, http i https?

Requests wybiera proxy według schematu docelowego URL. Bez klucza https żądania do stron https:// wychodziłyby bezpośrednio, z Twojego własnego IP. Ustawienie obu kluczy na ten sam URL proxy kieruje każde żądanie przez statyczne IP. Kontrola na api.ipify.org w skrypcie od razu wychwytuje brakujący klucz.

Dlaczego kodować nazwę użytkownika i hasło przez URL?

Znaki takie jak @, : i / mają znaczenie wewnątrz URL. Hasło z @ zostałoby inaczej odczytane jako koniec części logowania. urllib.parse.quote z safe='' koduje je, a Requests dekoduje je przed wysłaniem logowania do proxy. Działa to zarówno dla URL HTTP, jak i socks5h://.

Po co ustawiać trust_env na False?

Requests domyślnie odczytuje HTTP_PROXY, HTTPS_PROXY i NO_PROXY ze środowiska, a dokumentacja ostrzega, że proxy ze środowiska mogą nadpisać ustawienie proxies w Session. VPN lub ustawienie firmowe mogłoby wtedy kierować część żądań gdzie indziej. trust_env = False sprawia, że kod używa tylko przekazanego proxy.

Czy mogę użyć tego samego kodu z httpx lub aiohttp?

Tak, idea jest ta sama: URL proxy zbudowany z hosta, portu, nazwy użytkownika i hasła, plus timeout i kontrola wyjściowego IP. Nazwy parametrów różnią się w zależności od biblioteki i wersji, więc kieruj się dokumentacją proxy danej biblioteki. Zachowaj jednego klienta na statyczne IP, tak jak w przypadku Sessions w Requests.

Jak trzymać dane uwierzytelniające poza repozytorium?

Odczytuj je ze zmiennych środowiskowych lub menedżera sekretów, jak w przykładach, i nigdy nie commituj pliku .env z prawdziwymi wartościami. Nie wypisuj URL proxy w logach, bo zawiera hasło. Przy metodzie listy dozwolonych IP skrypty na dozwolonych maszynach nie potrzebują w ogóle hasła proxy.

Ile żądań obsłuży jedno statyczne IP w Pythonie?

Proxy rozlicza za IP i za 30 dni, a nie za GB. Rozliczane za IP i za 30 dni, nie za GB; obowiązuje zasada uczciwego korzystania. Prawdziwym ograniczeniem jest docelowa strona, która może ograniczać częstotliwość dla jednego IP. Utrzymuj umiarkowaną współbieżność na IP, dodawaj opóźnienia i przestrzegaj warunków każdej strony. Przy większym wolumenie jednego zadania rozłóż pracę na kilka IP; zobacz ile statycznych IP potrzebuję?.

Z jakich źródeł korzysta ten przewodnik? (3)
  1. Zaawansowane użycie Requests: proxy, SOCKS, timeouty — Requests (2026-10-19)
  2. urllib.parse: quote — Python Software Foundation (2026-10-19)
  3. API ipify — ipify (2026-10-19)

Od 2,24 USD za IP ISP · 30 dni · bez KYC

Zobacz ceny