1. Cos'è un proxy server?
Un po' dal mondo delle reti
Un proxy server è, essenzialmente, il tuo agente segreto personale nel cyberspazio. Immagina di voler rimanere incognito in rete e ti serve un intermediario che trasmetta le tue richieste al server e poi ti restituisca le risposte, nascondendo il tuo vero indirizzo IP. Il proxy server fa proprio questo — trasmette le tue richieste anonimamente e ti invia le risposte.
Tipi di proxy server
Prima di immergerci nel codice, sarebbe utile fare una piccola panoramica sui tipi di proxy server. Ce ne sono di diversi tipi, ciascuno con il proprio uso e caratteristiche:
- Proxy HTTP: Utilizzati per gestire richieste HTTP. Perfetti per navigazione web ordinaria.
- Proxy HTTPS: Gestiscono richieste HTTPS crittografate. Importanti per connessioni sicure.
- Proxy SOCKS: Più versatili e possono lavorare con qualsiasi tipo di traffico. Una scelta eccellente quando hai bisogno di massima flessibilità.
2. Configurazione di un proxy server in Python
Configurare un proxy server in Python è più facile che convincere un gatto a stare lontano dalla tastiera. Useremo la libreria requests, che permette di impostare facilmente i parametri del proxy per connessioni HTTP e HTTPS.
Installazione della libreria requests
Se per qualche motivo non hai ancora installato la libreria requests, è arrivato il momento di farlo. Ecco come procedere:
import requests
# Definiamo i proxy server per richieste HTTP e HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Eseguiamo una richiesta tramite il proxy
response = requests.get('http://example.com', proxies=proxies)
# Stampiamo il risultato
print(response.text)
pip install requests
Esempio di utilizzo di un proxy server
Ora vedremo come inviare richieste tramite un proxy server. Per farlo, utilizzeremo le funzionalità della libreria requests.
import requests
# Definiamo i proxy server per richieste HTTP e HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Eseguiamo una richiesta tramite il proxy
response = requests.get('http://example.com', proxies=proxies)
# Stampiamo il risultato
print(response.text)
Presta attenzione alla formattazione della stringa del proxy. Qui il tuo compito è sostituire your.proxy.server:port con l'URL e la porta del proxy server che utilizzi. In rete ci sono proxy server gratuiti e a pagamento. Se i proxy server gratuiti fossero partecipanti a «Miss Universo», vincerebbero a mani basse.
3. Vantaggi dell'utilizzo dei proxy server
Aggirare le limitazioni
I proxy server ci permettono di aggirare le limitazioni sulla frequenza delle richieste, imposte da alcuni siti. Attraverso la rotazione dei proxy server, è possibile variare gli indirizzi IP ed evitare i blocchi. È come cambiare disco nel lettore — il tuo script non sarà invadente.
Mantenere l'anonimato
Utilizzando i proxy, puoi mantenere l'anonimato delle tue azioni. Questo è particolarmente importante quando vuoi evitare limitazioni legate all'IP. In sostanza, ti permette di «mascherarti» agli occhi del server remoto.
4. Rotazione dei proxy server
Ora immaginiamo la rotazione dei proxy server. È come far girare una roulette — non si sa mai dove si fermerà. Nel nostro caso, la rotazione è necessaria per utilizzare diversi indirizzi IP durante lo scraping e per evitare sospetti da parte dei server.
import random
# Elenco dei proxy server disponibili
proxy_list = [
'http://proxy1:port',
'http://proxy2:port',
'http://proxy3:port'
]
def get_random_proxy():
return random.choice(proxy_list)
proxies = {
'http': get_random_proxy(),
'https': get_random_proxy()
}
# Eseguiamo una richiesta tramite un proxy scelto a caso
response = requests.get('http://example.com', proxies=proxies)
print(response.text)
Rotazione complessa
Puoi migliorare il tuo script aggiungendo una logica che controlla la disponibilità del proxy e li cambia in caso di indisponibilità. In questo modo, utilizzerai un set affidabile di indirizzi proxy.
GO TO FULL VERSION