Perché alcuni siti non si aprono tramite proxy: guida completa
I proxy sono uno strumento indispensabile per il web scraping, i test, l'automazione SMM e il bypass delle restrizioni geografiche. Ma a volte invece del contenuto vedi un errore 403, timeout o una pagina vuota. Scopriamo perché accade e come risolverlo.
1. Rilevamento e blocco del proxy
Questa è la causa più frequente. Le moderne applicazioni web utilizzano servizi speciali per rilevare il traffico proxy. Il sito analizza:
- ASN (Autonomous System Number) — molti provider di proxy utilizzano intervalli ASN noti, facili da bloccare
- Comportamento dell'utente — impossibile cambio rapido tra IP, assenza di cookie, strani modelli di clic
- Impronte TLS — i browser inviano dati univoci sulla versione SSL, estensioni, ordine di crittografia
- Impronte WebGL e Canvas — persino JavaScript può rivelare l'uso di un proxy
Esempio: Il sito vede che in 10 secondi dal tuo IP sono state caricate 100 pagine di prodotti. Chiaramente non è una persona — il blocco è inevitabile.
2. Restrizioni geografiche
Il sito controlla la geolocalizzazione dell'IP e nega l'accesso se non corrisponde alle aspettative:
- Le banche e i servizi finanziari bloccano l'accesso da determinati paesi
- I servizi di streaming (Netflix, YouTube) limitano i contenuti per regione
- I siti governativi possono essere inaccessibili dall'estero
- Le piattaforme di e-commerce cambiano lingua e valuta in base all'IP
Se utilizzi un proxy data center dagli USA e il sito richiede accesso solo dall'Europa — riceverai un errore 403 o un reindirizzamento.
3. Reputazione dell'indirizzo IP
Ogni IP ha una storia. Se l'indirizzo è stato precedentemente utilizzato per spam, scraping o attacchi DDoS, i siti lo bloccheranno:
- Liste nere — l'IP finisce nei database di Project Honey Pot, Spamhaus, AbuseIPDB
- Basso punteggio in servizi come IPQualityScore — i siti utilizzano tali servizi per filtrare
- Violazioni precedenti — se l'IP è stato già bloccato sul sito, potrebbe rimanere nella lista nera a lungo
Puoi controllare la reputazione dell'IP su abuseipdb.com o ipqualityscore.com.
4. Intestazioni e configurazione errate
Spesso i siti bloccano le richieste a causa di intestazioni HTTP mancanti o errate:
| Intestazione | Problema |
|---|---|
User-Agent |
Mancante o strano (come Python-requests/2.25.1) |
Referer |
Non corrisponde alla logica di navigazione del sito |
Accept-Language |
Mancante o non corrisponde alla geolocalizzazione IP |
X-Forwarded-For |
Rivela l'uso di proxy o VPN |
Soluzione: Utilizza intestazioni reali del browser. Ecco un esempio in Python:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1'
}
proxy = 'http://your-proxy:port'
response = requests.get('https://example.com',
headers=headers,
proxies={'http': proxy, 'https': proxy})
5. Problemi di protocollo e porte
Alcuni proxy supportano solo HTTP, ma stai cercando di accedere a un sito HTTPS. Oppure la porta è bloccata a livello di rete:
- HTTP vs HTTPS — assicurati che il proxy supporti entrambi i protocolli
- Porte — standard 80 (HTTP) e 443 (HTTPS), ma alcuni siti utilizzano porte non standard
- SOCKS vs HTTP — diversi tipi di proxy hanno limitazioni diverse
Consiglio: Se il sito non si apre tramite proxy HTTP, prova SOCKS5. Funziona a un livello più basso e aggira meglio alcune restrizioni.
6. Rate limiting e protezione DDoS
Se fai molte richieste di seguito, anche tramite IP diversi, il sito potrebbe bloccarti:
- 429 Too Many Requests — hai superato il limite di richieste
- Blocco temporaneo — di solito da 1 a 24 ore
- Blocco permanente — se continui ad attaccare il server
- Cloudflare, WAF — sistemi di protezione specializzati che distinguono i bot dagli umani
7. Soluzioni pratiche
✓ Utilizza proxy residenziali invece di data center
I proxy residenziali sono indirizzi IP reali di utenti domestici. Sono molto più difficili da rilevare perché sembrano traffico ordinario. I data center vengono spesso bloccati perché il loro ASN è noto.
✓ Aggiungi ritardi tra le richieste
import time
import random
for url in urls:
response = requests.get(url, headers=headers, proxies=proxies)
# Ritardo casuale da 1 a 5 secondi
time.sleep(random.uniform(1, 5))
✓ Ruota i proxy
Non utilizzare un singolo IP per tutte le richieste. Passa tra diversi indirizzi:
proxies_list = [
'http://proxy1:port',
'http://proxy2:port',
'http://proxy3:port',
]
for i, url in enumerate(urls):
proxy = proxies_list[i % len(proxies_list)]
response = requests.get(url, proxies={'http': proxy, 'https': proxy})
✓ Controlla l'IP prima dell'uso
Assicurati che l'IP non sia in una lista nera:
import requests
def check_ip_reputation(ip):
response = requests.get(f'https://ipqualityscore.com/api/json/ip/{ip}')
data = response.json()
return data.get('fraud_score', 0)
# Utilizza solo IP con punteggio basso
if check_ip_reputation(proxy_ip) < 75:
# L'IP è sicuro
pass
✓ Utilizza l'automazione del browser per siti complessi
Se il sito utilizza JavaScript e protezione complessa, le normali richieste HTTP non aiuteranno. Utilizza Selenium o Puppeteer:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://proxy:port')
driver = webdriver.Chrome(options=options)
driver.get('https://example.com')
✓ Utilizza proxy mobili per siti mobili
I proxy mobili funzionano tramite reti mobili reali (4G/5G). Sono più affidabili per le applicazioni mobili e spesso non vengono bloccati dai siti che limitano l'accesso dai PC.
✓ Gestisci gli errori correttamente
try:
response = requests.get(url, proxies=proxies, timeout=10)
response.raise_for_status()
except requests.exceptions.ProxyError:
print("Errore proxy — l'IP potrebbe essere bloccato")
except requests.exceptions.Timeout:
print("Timeout — il server non risponde")
except requests.exceptions.HTTPError as e:
if response.status_code == 403:
print("Accesso negato — prova un altro proxy")
Conclusioni
I siti bloccano i proxy per vari motivi: dal rilevamento dei modelli di traffico alla semplice reputazione dell'IP. Non esiste una soluzione universale, ma una combinazione di buoni proxy, intestazioni corrette, ritardi e rotazione degli IP risolverà la maggior parte dei problemi.
Per il parsing e l'automazione si consiglia di utilizzare proxy residenziali di qualità, che sembrano traffico reale di utenti domestici. Sono più costosi dei data center, ma funzionano in modo più affidabile e vengono raramente bloccati.