Senza KYC — nessun documento d'identità, nessun selfie, nessun documento · Paga in crypto: BTC, USDT, USDC, ETH, SOL, LTC · Ricarica da 25 USD
Lingua: Italiano
Vedi i prezzi

Guida · Python

Python Requests con un proxy statico

Costruisci l'URL del proxy dai quattro valori del tuo IP, passalo per http e https, imposta i timeout e verifica l'IP di uscita. Testato il 19 ottobre 2026.

Ultimo aggiornamento: · 6 min di lettura

Risposta rapida

Come si usa Python Requests con un proxy statico?

Per usare Python Requests con un proxy statico, costruisci l'URL del proxy con host, porta, username e password del tuo IP. Passalo sia per la chiave http che per la chiave https di proxies=, imposta un timeout e controlla l'IP di uscita su api.ipify.org. SteadyProxy gli IP statici costano 2,24 USD per 30 giorni a ottobre 2026, senza KYC e con pagamento in crypto.

Quali sono i dati essenziali?

Installapython -m pip install requests (SOCKS5: requests[socks])
URL del proxy HTTPhttp://USERNAME:PASSWORD@host:port, for both the http and https keys
URL del proxy SOCKS5socks5h://USERNAME:PASSWORD@host:port (porta SOCKS5 predefinita 7778)
Caratteri specialiCodifica con URL-encode username e password con urllib.parse.quote
Proxy da variabili d'ambientesession.trust_env = False ignora HTTP_PROXY impostato altrove
Timeout(10, 30): 10 s per connettersi, 30 s per leggere, nei nostri esempi
TestatoPython 3.14 e Requests 2.34, 19 ottobre 2026, tramite un proxy di test protetto da password

Come si invia una richiesta attraverso un singolo proxy statico?

Ogni IP statico ha il proprio host, porta, username e password nella tua dashboard. Mettili in variabili d'ambiente, non nel codice. Lo script qui sotto costruisce l'URL del proxy, invia una richiesta a api.ipify.org e si ferma se l'IP di uscita non è quello atteso. Poi legge il nome della rete da ipinfo.io. Con una password errata, Requests solleva un ProxyError che menziona 407 Proxy Authentication Required, come ha mostrato il nostro test.

python_requests.py: un proxy statico con controllo dell'IP di uscita
"""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"))

Perché l'URL del proxy è http:// per i siti https://?

La chiave del dizionario proxies è lo schema del sito di destinazione; il valore è l'indirizzo del proxy. Per un sito https://, Requests chiede al proxy HTTP di aprire un tunnel CONNECT, poi esegue TLS attraverso di esso verso il sito. Il proxy non vede mai la pagina decifrata. Quindi entrambe le chiavi puntano allo stesso URL del proxy http://. Mantieni attivi i controlli dei certificati: non impostare mai verify=False per far sparire un errore del proxy.

Come assegno a ogni account il proprio IP statico?

Mappa ogni account o job su un IP e costruisci una Session per ogni mapping. Una Session conserva i cookie e riutilizza le connessioni e, con trust_env = False, la sua impostazione proxies non viene sostituita dalle variabili d'ambiente. L'esempio qui sotto legge una riga per IP, nell'ordine host, porta, username, password, che puoi copiare dai quattro valori della tua dashboard.

python_per_account.py: una Session per IP statico
"""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)

Come si usa SOCKS5 invece di HTTP?

Installa requests[socks] e sostituisci http:// con socks5h:// e la porta HTTP con la porta SOCKS5. La h fa risolvere i nomi host al proxy, così le risposte DNS corrispondono al paese dell'IP. Il resto del codice resta uguale. Un esempio completo e testato è nella guida ai proxy statici SOCKS5. Entrambe le porte di un IP statico portano allo stesso IP di uscita.

Cosa significano gli errori più comuni?

Ogni errore punta a uno strato.

  • ProxyError con 407: username o password errati, oppure questa macchina non è nella tua allowlist.
  • ConnectTimeout: host o porta errati, oppure un firewall dalla tua parte blocca il traffico in uscita verso la porta del proxy.
  • ReadTimeout: il target o il percorso è lento; riprova più tardi e mantieni il timeout di lettura.
  • SSLError: un problema di certificato sul target o sulla tua macchina; non disattivare la verifica.
  • 403 o 429 dal target: il sito ha rifiutato o limitato la richiesta; rallenta.

Se un IP fallisce ogni richiesta per un'ora, contatta l'assistenza. La nostra regola di sostituzione: Se un IP non funziona, scrivi all'assistenza: lo riparia­mo o lo sostituiamo con un altro IP nello stesso paese quando la disponibilità lo consente.

Cos'altro si chiede su Python e i proxy statici?

Perché imposto sia la chiave http che la chiave https?

Requests sceglie il proxy in base allo schema dell'URL di destinazione. Senza la chiave https, le richieste ai siti https:// uscirebbero direttamente, dal tuo IP. Impostando entrambe le chiavi sullo stesso URL del proxy, ogni richiesta passa attraverso l'IP statico. Il controllo su api.ipify.org nello script intercetta subito una chiave mancante.

Perché codificare con URL-encode username e password?

Caratteri come @, : e / hanno un significato all'interno di un URL. Una password con un @ verrebbe altrimenti letta come fine della parte di login. urllib.parse.quote con safe='' li codifica e Requests li decodifica prima di inviare il login al proxy. Funziona sia per gli URL HTTP che per quelli socks5h://.

Perché impostare trust_env su False?

Requests legge HTTP_PROXY, HTTPS_PROXY e NO_PROXY dall'ambiente per impostazione predefinita e la documentazione avverte che i proxy da variabili d'ambiente possono sovrascrivere l'impostazione proxies di una Session. Una VPN o un'impostazione aziendale potrebbe quindi instradare alcune richieste altrove. trust_env = False fa usare al codice solo il proxy che passi.

Posso usare lo stesso codice con httpx o aiohttp?

Sì, l'idea è la stessa: un URL del proxy costruito con host, porta, username e password, più un timeout e un controllo dell'IP di uscita. I nomi dei parametri cambiano in base alla libreria e alla versione, quindi segui la documentazione dei proxy di quella libreria. Mantieni un client per IP statico, come con le Session in Requests.

Come tengo le credenziali fuori dal mio repository?

Leggile da variabili d'ambiente o da un secret manager, come fanno gli esempi, e non committare mai un file .env con valori reali. Non stampare l'URL del proxy nei log, perché contiene la password. Con il metodo della allowlist degli IP, gli script sulle macchine in allowlist non hanno bisogno di alcuna password del proxy.

Quante richieste può gestire un IP statico in Python?

Il proxy fattura per IP e per 30 giorni, non per GB. Fatturato per IP e per 30 giorni, non per GB; si applica il fair use. Il vero limite è il sito di destinazione, che può applicare rate-limit a un singolo IP. Mantieni una concorrenza moderata per IP, aggiungi ritardi e rispetta i termini di ogni sito. Per più volume su un'unica attività, distribuisci il lavoro su più IP; vedi quanti IP statici mi servono?.

Quali fonti usa questa guida? (3)
  1. Uso avanzato di Requests: proxy, SOCKS, timeout — Requests (2026-10-19)
  2. urllib.parse: quote — Python Software Foundation (2026-10-19)
  3. API ipify — ipify (2026-10-19)

Da 2,24 USD per IP ISP · 30 giorni · senza KYC

Vedi i prezzi