# Proxy in Python requests: usa un proxy ISP statico | ProxyJam

Come impostare un proxy in Python requests: per singola richiesta, per sessione e in SOCKS5 con DNS remoto, con codice testato per un indirizzo ISP statico.

- Canonical: https://proxyjam.com/it/integrations/python-requests/
- Updated: 2026-10-23
- Language: it

Indirizza requests verso un indirizzo ISP statico: un solo IP sulla rete di un provider internet indicato per nome, mantenuto per il periodo che paghi. Il codice qui sotto è stato eseguito su un proxy con autenticazione prima della pubblicazione.


Passa un dizionario proxies con entrambe le chiavi http e https, ciascuna impostata su http://USERNAME:PASSWORD@HOST:PORT, e requests invia la chiamata tramite il proxy; le destinazioni HTTPS lo attraversano come tunnel. Per SOCKS5, installa requests[socks], passa il proxy a SOCKS5 sul tuo ordine e usa lo schema socks5h, così i nomi host li risolve il proxy e non la tua macchina.


## Impostare un proxy in Python requests

1. **Copia i quattro valori dal tuo ordine** Host, porta, nome utente e password, da I miei proxy nella dashboard oppure dall’ordine nell’API. Ogni indirizzo ha i suoi quattro valori; non c’è un gateway condiviso.
2. **Costruisci un URL del proxy** `http://USERNAME:PASSWORD@HOST:PORT`. Se la password contiene `/`, `?`, `#` o `%`, codificala prima per l’URL con `urllib.parse.quote(password, safe="")`.
3. **Impostalo per entrambi gli schemi** Assegna lo stesso URL alla chiave `http` e alla chiave `https`. Con la sola `http`, tutte le richieste HTTPS saltano il proxy e partono dal tuo indirizzo.
4. **Controlla una volta l’indirizzo di uscita** Richiedi una pagina che mostri l’IP di chi chiama, oppure apri [What Is My IP](/it/what-is-my-ip/) tramite lo stesso proxy, e verifica che sia l’indirizzo che hai acquistato.
5. **Esegui il lavoro con un timeout** Passa sempre `timeout=`: per impostazione predefinita requests aspetta all’infinito, e una connessione bloccata sembra allora uno script che si è piantato.

## Codice testato per requests

Ogni esempio si collega tramite un proxy HTTP con nome utente e password, tranne quello SOCKS5, che richiede prima di passare il proxy a SOCKS5; a quel punto l’ordine mostra una nuova porta e nuove credenziali da usare. Sostituisci i quattro valori in maiuscolo con quelli del tuo ordine.

### Per richiesta

Passa il proxy a una singola chiamata.

```
import requests

# The four values come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)
```

### Sessione

Imposta il proxy una volta per tutte le chiamate di una sessione.

```
import requests

proxy = "http://USERNAME:PASSWORD@HOST:PORT"

with requests.Session() as session:
    # HTTP_PROXY / HTTPS_PROXY in the environment would override
    # session.proxies; this makes the session use only its own setting.
    session.trust_env = False
    session.proxies.update({"http": proxy, "https": proxy})
    response = session.get("https://example.com/", timeout=30)
    response.raise_for_status()
    print(response.status_code)
```

### SOCKS5

SOCKS5 con i nomi host risolti sul proxy.

```
# pip install "requests[socks]"
import requests

# Switch the proxy to SOCKS5 first; use the values the order then shows.
# socks5h: the proxy resolves the hostname, not your machine.
proxy = "socks5h://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)
```


## Dove si può impostare il proxy in requests

|  | Ambito | Credenziali | Quando usarlo |
|---|---|---|---|
| proxies= su una chiamata | Quella singola richiesta | Nell’URL | Uno script con poche chiamate |
| Session.proxies | Tutte le richieste della sessione | Nell’URL | Qualsiasi cosa più lunga, con trust_env su False |
| HTTP_PROXY e HTTPS_PROXY | Tutte le chiamate requests del processo | Nell’URL | Codice che non puoi modificare; NO_PROXY elenca gli host da escludere |
| URL socks5h:// | L’ambito in cui è impostato | Nell’URL | Quando i nomi host vanno risolti sul proxy |

Ricavato dalla documentazione di requests e verificato con gli esempi di codice di questa pagina su un proxy locale con autenticazione. Quando ne è impostato più di uno, un argomento proxies sulla chiamata prevale sull’ambiente, e l’ambiente prevale su Session.proxies a meno che la sessione non imposti trust_env su False, come fa l’esempio di sessione.


## A che cosa si collega requests

- **Protocolli:** HTTP, che trasporta HTTPS, oppure SOCKS5, che si attiva sull’ordine
- **Autenticazione:** Nome utente e password, oppure una whitelist IP impostata tramite l’API
- **Indirizzo:** Un IP statico per tutto il periodo, sulla rete di un provider internet indicato per nome
- **Rotazione:** Nessuna: lo stesso indirizzo a ogni richiesta

## Che cosa va storto con requests e i proxy

### È impostata solo la chiave http

La chiave indica lo schema della destinazione, non quello del proxy. Un dizionario con la sola http instrada l’HTTP in chiaro e lascia uscire direttamente tutte le chiamate HTTPS, senza alcun errore che te lo segnali.

### socks5 dove serviva socks5h

Con socks5 è la tua macchina a risolvere il nome host e a passare al proxy un IP. Con socks5h lo risolve il proxy, quindi la richiesta DNS e la sua risposta arrivano dalla rete del proxy, e questo conta per i siti che rispondono in base alla posizione.

### Una password che spezza l’URL

Una barra, un punto interrogativo o un cancelletto nella password troncano l’URL, e requests fallisce prima di raggiungere il proxy; un segno di percentuale viene decodificato come sequenza di escape. Codifica la password per l’URL, oppure usa l’autenticazione tramite whitelist IP e lascia fuori le credenziali.

### Una variabile d’ambiente dimenticata

requests legge HTTP_PROXY, HTTPS_PROXY e NO_PROXY a meno che tu non imposti trust_env su False nella sessione, e queste variabili prevalgono su Session.proxies. Una variabile rimasta su un server può mandare il traffico di una sessione dove non volevi, o fargli aggirare il proxy.


## Domande sui proxy in Python requests

### Come si usa un proxy con autenticazione in Python requests?

Metti nome utente e password nell’URL del proxy, http://USERNAME:PASSWORD@HOST:PORT, e passalo sia per la chiave http sia per la chiave https. requests invia le credenziali al proxy, che risponde 407 se sono sbagliate. Codifica una password che contiene caratteri riservati, oppure usa una whitelist IP.

### Come si usa un proxy SOCKS5 con requests?

Installa l’extra con pip install requests[socks], passa il proxy stesso a SOCKS5 sul tuo ordine e usa la porta e le credenziali che l’ordine mostra a quel punto in un URL socks5h://. Cambiare solo lo schema non basta: un indirizzo impostato su HTTP non risponde in SOCKS5 finché non viene passato a SOCKS5.

### Posso usare l’autenticazione tramite whitelist IP al posto della password?

Sì. Aggiungi alla whitelist del proxy l’indirizzo IPv4 pubblico da cui gira il tuo script con una chiamata API, PUT /orders/ORDER_ID/whitelist, oppure tramite il server MCP; la dashboard non ha ancora un comando per farlo. Il proxy accetta allora le connessioni da quell’indirizzo senza credenziali, in HTTP e in SOCKS5, e l’URL diventa http://HOST:PORT. Finché una whitelist è impostata, il proxy ammette solo gli indirizzi della lista e nome utente e password smettono di funzionare per quell’ordine; inviando una lista vuota la whitelist si disattiva e l’accesso con password torna a funzionare.

### L’indirizzo ruota tra una richiesta e l’altra?

No. Un proxy ISP statico è un solo indirizzo per il periodo che paghi, e ogni richiesta che invii tramite esso parte da quell’indirizzo. Se un lavoro ha bisogno di un indirizzo diverso a ogni richiesta, serve un pool a rotazione, che non vendiamo ancora.

### Come controllo quale IP vede un sito?

Richiedi tramite lo stesso proxy una pagina che restituisca l’indirizzo di chi chiama, oppure apri What Is My IP da un browser impostato su quel proxy. Se mostra il tuo indirizzo, probabilmente manca la chiave https.

### Per che cosa posso usare il proxy?

I test dei tuoi siti per regione, i controlli di qualità, la verifica degli annunci, le ricerche di prezzi e di mercato e la tutela del marchio non richiedono alcuna revisione secondo la nostra politica di utilizzo accettabile. Il proxy non aggira CAPTCHA, rilevamento dei bot, limiti di frequenza o ban degli account, e la politica vieta di usarlo per provarci.


Un indirizzo statico è adatto ai lavori che devono arrivare ogni volta dallo stesso punto: un monitoraggio, un controllo regionale, un test che confronta oggi con la settimana scorsa. Ordina un indirizzo per lavoro dalla [pagina dei proxy ISP](/it/isp-proxies/), consulta la [pagina dei prezzi](/it/pricing/) e, se lo stesso lavoro gira in un browser, le guide per [Selenium](/it/integrations/selenium/) e [Playwright](/it/integrations/playwright/) impostano lì lo stesso indirizzo.



## Fonti

- [Requests documentation, Proxies](https://requests.readthedocs.io/en/latest/user/advanced/#proxies): l’argomento proxies, le variabili d’ambiente e il supporto SOCKS
- [RFC 1928, SOCKS Protocol Version 5](https://www.rfc-editor.org/rfc/rfc1928): come un client chiede a un proxy SOCKS5 una destinazione per nome o per indirizzo
- [RFC 3986, URI Generic Syntax](https://www.rfc-editor.org/rfc/rfc3986#section-3.2.1): la parte userinfo di un URL e i caratteri che vanno codificati al suo interno




Python requests prende il proxy da un dizionario che associa lo schema dell’URL di destinazione a un URL del proxy. Questa guida imposta quel dizionario per un indirizzo ISP statico e mostra i tre punti in cui può stare: su una chiamata, su una sessione o nell’ambiente.

## Proxy in Python requests con nome utente e password

La maggior parte dei proxy, compresi i nostri, chiede nome utente e password. requests li legge dall’URL del proxy e li invia al proxy a ogni connessione. Per una destinazione HTTPS il proxy apre un tunnel e non vede mai il contenuto della richiesta. Le schede del codice mostrano la forma per singola richiesta e quella per sessione.

