Come usare un proxy in Python

Come fare, Proxy, Python, Mar-06-20245 minuti di lettura

Spesso ci imbattiamo nel termine "proxy" quando lavoriamo nel campo dell'informatica. Quando si collega a Internet, ogni computer riceve un indirizzo IP (Internet Protocol) univoco che identifica il computer e la sua posizione geografica. Il computer invia una richiesta ogni volta che ha bisogno di informazioni da Internet. La richiesta è

Indice dei contenuti

Spesso ci imbattiamo nel termine "proxy"quando lavoriamo nel campo dell'informatica. Quando si collega a Internet, ogni computer riceve un indirizzo IP (Internet Protocol) univoco che identifica il computer e la sua posizione geografica. Il computer invia una richiesta ogni volta che ha bisogno di informazioni da Internet. La richiesta viene inviata a un computer di destinazione che controlla il tipo di informazioni richieste. Il computer di destinazione invia le informazioni se è autorizzato a fornirle al nostro indirizzo IP. A volte, il computer vuole ottenere le informazioni da Internet senza essere identificato. Di solito queste informazioni sono bloccate, ma possiamo ottenerle utilizzando un proxy che funge da intermediario tra il client e il computer server.

I client di solito utilizzano il server proxy per navigare nelle pagine Web e richiedere risorse in modo anonimo, poiché agisce come campo di identificazione tra il computer client e Internet. 

I server proxy sono diventati molto popolari con la crescente preoccupazione per la sicurezza online e il furto di dati. A questo punto sorge spontanea la domanda: in che modo il server proxy è collegato alla sicurezza del nostro sistema? Possiamo dire che un server proxy aggiunge un ulteriore livello di sicurezza tra il nostro server e il mondo esterno. Questo ulteriore livello di sicurezza aiuta a salvare il nostro sistema da una violazione. 

Come usare un proxy in Python?

Per utilizzare i proxy con le richieste Python, è necessario seguire i passaggi seguenti.

Richieste di importazione

Importare il pacchetto requests, che è una semplice libreria HTTP. È possibile inviare facilmente le richieste attraverso questo pacchetto, senza aggiungere manualmente le stringhe di query agli URL. È possibile importare requests utilizzando il comando seguente.

richieste di importazione

Creare un dizionario

È necessario creare un dizionario dei proxy che definisca le connessioni HTTP e HTTPS. Si può dare alla variabile del dizionario un nome qualsiasi, come "proxies", che mappi un protocollo all'URL del proxy. Inoltre, la variabile URL deve essere impostata sul sito web da cui si deve effettuare lo scraping.

proxies = {
  "http":'http://203.190.46.62:8080',
  "https":'https://111.68.26.237:8080'
}
url = 'https://httpbin.org/ip'

Qui il dizionario definisce l'URL del proxy per due protocolli distinti, ossia HTTP e HTTPS.

Creare una variabile di risposta

È necessario creare una variabile di risposta che utilizzi uno qualsiasi dei metodi di richiesta. Questo metodo accetta due argomenti:

  • L'URL creato
  • Il dizionario ha definito
response = requests.get(url,proxies = proxies)
print(response.json())

L'output è il seguente:

Metodi di richiesta

Esistono diversi metodi di richiesta come:

  • GET - Recupera informazioni da un determinato server utilizzando un determinato URL. 
  • POST - Questo metodo richiede che il server Web indicato accetti i dati allegati nel corpo del messaggio di richiesta per memorizzarli.
  • PUT - Richiede che i dati allegati vengano memorizzati nell'URL indicato.
  • DELETE - Questo metodo invia una richiesta di DELETE all'URL indicato.
  • PATCH - Questo metodo di richiesta è supportato dal protocollo HTTP e apporta modifiche parziali a una risorsa esistente. 
  • HEAD - Invia una richiesta HEAD all'URL indicato quando non si ha bisogno del contenuto del file e si desidera solo le intestazioni HTTP o lo status_code.

È possibile utilizzare la seguente sintassi dei metodi di richiesta quando viene specificato l'URL. In questo caso, il nostro URL è lo stesso utilizzato nel codice precedente, ovvero https://httpbin.org/ip.

response = requests.get(url)
response = requests.post(url, data={"a": 1, "b": 2})
response = requests.put(url)
response = requests.delete(url)
response = requests.patch(url)
response = requests.head(url)
response = requests.options(url)

Sessioni proxy

Se si desidera effettuare lo scraping dei dati dai siti web che utilizzano le sessioni, è possibile seguire i passaggi indicati di seguito.

Passo#01

Importare la libreria delle richieste.

richieste di importazione

Passo#02

Creare un oggetto sessione creando una variabile sessione e impostandola sul metodo requests Session(). 

session = requests.Session()

session.proxies = {
   'http': 'http://10.10.10.10:8000',
   'https': 'http://10.10.10.10:8000',
}

url = 'http://mywebsite.com/example'

Passo#03

Inviare i proxy di sessione attraverso il metodo requests e passare l'URL come argomento.

response = session.get(url)

Principali tipi di proxy

Discutiamo i due tipi essenziali di proxy, ovvero..;

Proxy staticiProxy rotanti

Proxy statici

Possiamo definire i proxy statici come i protocolli Internet dei datacenter assegnati tramite un contratto con un Internet Service Provider (ISP). Sono progettati per rimanere connessi a un server proxy per un determinato periodo di tempo. Il nome "statico" implica che ci permette di operare come un utente residenziale con lo stesso IP per tutto il tempo necessario. 

In breve, con l'uso dei proxy statici si ottiene la velocità dei proxy dei centri dati e l'elevato anonimato dei proxy residenziali. Inoltre, un proxy statico ci permette di evitare la rotazione degli indirizzi IP, semplificando notevolmente il suo utilizzo.

I servizi IP statici non vengono creati utilizzando macchine virtuali, a differenza dei normali proxy per datacenter. Questi proxy, noti anche come indirizzi IP appiccicosi, appaiono come veri consumatori a quasi tutti i siti web. 

Proxy a rotazione

Possiamo definire la rotazione dei proxy come una funzione che cambia il nostro indirizzo IP a ogni nuova richiesta inviata.

Quando visitiamo un sito web, inviamo una richiesta che mostra al server di destinazione molti dati, tra cui il nostro indirizzo IP. Ad esempio, quando raccogliamo dati utilizzando uno scraper (per generare lead), inviamo molte richieste di questo tipo. Pertanto, il server di destinazione si insospettisce e lo vieta quando la maggior parte delle richieste proviene dallo stesso IP. 

Pertanto, deve esistere una soluzione per cambiare il nostro indirizzo IP a ogni richiesta inviata. Questa soluzione è un proxy rotante. Quindi, per evitare l'inutile seccatura di procurarsi uno scraper per la rotazione degli IP nel web scraping, possiamo procurarci dei proxy rotanti e lasciare che il nostro provider si occupi della rotazione.

Perché è necessario utilizzare i proxy?

Di seguito sono riportati i motivi per cui utilizzare vari tipi di proxy.

  • I gestori dei social media apprezzano i proxy perché permettono loro di rimanere su un unico server. Se gli utenti accedono costantemente ai loro account cambiando indirizzo IP, la piattaforma di social media si insospettirà e bloccherà il loro profilo.
  • I siti di e-commerce potrebbero mostrare dati diversi per gli utenti provenienti da altre località e per i visitatori di ritorno. Inoltre, il server si allerta se un acquirente accede al suo account più volte da diversi indirizzi IP. Pertanto, è necessario utilizzare i proxy per lo shopping online.
  • Abbiamo bisogno di proxy per le ricerche di marketing manuali, quando uno specialista vuole controllare i dati richiesti attraverso gli occhi di un utente da un'unica postazione. 
  • La verifica degli annunci consente agli inserzionisti di controllare se i loro annunci sono visualizzati sui siti web giusti e visti dal pubblico giusto. Il costante cambiamento degli indirizzi IP accede a molti siti web diversi e quindi verifica gli annunci senza blocchi IP.
  • Quando si accede da luoghi specifici, lo stesso contenuto può apparire diverso o non essere disponibile. L'uso dei proxy ci permette di accedere ai dati necessari indipendentemente dalla loro geo-localizzazione. 
  • Possiamo usare i proxy per accedere ai dati, accelerando la velocità di navigazione perché hanno un buon sistema di cache.

Conclusione

Finora abbiamo detto che un proxy agisce come un relè tra il computer client e il server. Ogni volta che si richiedono informazioni, il computer invia la richiesta al proxy, che poi invia le informazioni al computer di destinazione utilizzando un indirizzo IP diverso. In questo modo il vostro indirizzo IP rimane riservato. Inoltre, è possibile utilizzare i proxy con il modulo requests di Python ed eseguire varie azioni a seconda delle esigenze. Se avete bisogno di un IP statico con la velocità dei proxy dei centri dati e l'elevato anonimato dei proxy residenziali, allora i proxy statici sono la strada da percorrere, poiché l'indirizzo IP rimane invariato a ogni nuova richiesta. Al contrario, i proxy rotanti offrono vantaggi nei test e nello scraping.