Come usare i proxy per ruotare gli indirizzi IP in Python? 5 semplici passi nel 2024

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

Quando si utilizza un proxy, non ci si connette direttamente al server di destinazione, ma si indirizza la richiesta al server proxy che la valuta e restituisce una risposta. I proxy hanno molti vantaggi, ad esempio nascondono gli indirizzi IP reali, aggirano i filtri, la censura e così via. A volte è difficile eseguire uno scraping web avanzato.

Indice dei contenuti

Quando si utilizza un proxy, non ci si connette direttamente al server di destinazione, ma si indirizza la richiesta al server proxy che la valuta e restituisce una risposta. I proxy hanno molti vantaggi, ad esempio nascondono i vostri veri indirizzi IP, aggirano i filtri, la censura e così via. 

A volte è difficile eseguire uno scraping web avanzato a causa dell'invio di più richieste dallo stesso indirizzo IP. I web scrapers devono affrontare il problema comune di essere bloccati dai siti web che scrapano. Tuttavia, possono utilizzare molte tecniche per evitare di essere bloccati, come ad esempio

  • Rotazione degli indirizzi IP
  • Utilizzo di browser headless
  • Riduzione del tasso di crawling,
  • Utilizzo di proxy

Un rotatore proxy può aiutarvi ad aggirare la maggior parte delle misure anti-scraping. Può anche essere utilizzato per aggirare eventuali limiti di velocità implementati sul sito web di destinazione ed estrarre i dati con successo. Ma cos'è un proxy rotante? È un proxy che assegna un nuovo indirizzo IP per ogni connessione dal pool di proxy. Ciò significa che potete inviare 1000 richieste a qualsiasi numero di siti web lanciando uno script e ottenendo 1000 indirizzi IP diversi.

Questo articolo aiuta a capire come utilizzare i proxy per ruotare gli indirizzi IP in python.

Come usare i proxy per ruotare gli indirizzi IP in Python

È possibile raccogliere un elenco di proxy gratuiti e salvarli in un file di testo chiamato list_proxy.txt. È quindi possibile seguire i passaggi seguenti per ruotare gli indirizzi IP in Python.

Importazione di librerie

È necessario importare il modulo requests di Python utilizzando il comando seguente.

richieste di importazione

Se il modulo non è installato nel vostro ambiente, potete installarlo usando il comando seguente.

richieste di installazione pip

Creare una funzione

È necessario creare una funzione send_request che accetti due parametri, ossia sessione e proxy. Sarebbe meglio utilizzare un proxy HTTP, poiché la maggior parte dei proxy gratuiti non utilizza il protocollo HTTPS. Utilizzeremo i blocchi try-except perché la maggior parte dei proxy gratuiti non funzionano perché sono stati bloccati.

def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass

Leggere il file .txt

Ecco la sezione principale del codice. Bisogna leggere il file list_proxy.txt e salvarlo nella variabile proxies, come mostrato di seguito.

if __name__ == "__main__":
  con open('list_proxy.txt', 'r') come file:
       proxy = file.readlines()

Utilizzare un ciclo For

È necessario utilizzare il modulo requests per creare una sessione in Python. Nel codice sottostante abbiamo usato un ciclo for per scorrere il proxy. Abbiamo poi passato la sessione e il proxy alla funzione send_request. 

con requests.Session() come sessione:
  per proxy in proxy:
       send_request(sessione, proxy)

Eseguire lo script

È possibile eseguire lo script e vedere l'output come mostrato di seguito. Si otterrà un lungo elenco di proxy, ma ricordate che non funzioneranno. 

python rotateproxy.py

L'intero codice sarà come:

import requests


def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass


if __name__ == "__main__":
   with open('list_proxy.txt', 'r') as file:
       proxies = file.readlines()

   with requests.Session() as session:
       for proxy in proxies:
           send_request(session, proxy)

Suggerimenti per costruire un rotatore di proxy

Di seguito sono riportati alcuni suggerimenti per ruotare i proxy in Python quando si utilizza un proxy rotante.

Utilizzare servizi proxy affidabili e gratuiti

La maggior parte dei servizi proxy gratuiti disponibili sono congestionati, il che porta a crash inaspettati e ritardi frustranti. Pertanto, quando si decide di optare per i proxy gratuiti, è necessario verificare che siano in grado di soddisfare le proprie esigenze di scraping senza provocare significativi drawdown.

La maggior parte dei proxy gratuiti sono validi per un periodo di tempo limitato, quindi è possibile costruire la propria logica in Python che può ruotare il rotatore dell'elenco di proxy gratuiti con indirizzi IP funzionanti. In questo modo, non si avranno interruzioni durante lo scraping del web. 

Astenersi dall'uso di indirizzi IP proxy prevedibili

È necessario evitare di utilizzare indirizzi IP che seguono una sequenza particolare o un formato prevedibile come l'appartenenza allo stesso gruppo. Questo perché la maggior parte degli strumenti anti-scraping è in grado di rilevare facilmente le richieste inviate da tali indirizzi IP. Ad esempio, dovreste evitare di utilizzare la seguente sequenza di indirizzi IP a rotazione, perché farebbe subito scattare l'allarme.

103.243.132.11

103.243.132.12

103.243.132.13

103.243.132.14

Considerate un servizio proxy premium

I rotatori di IP proxy gratuiti sono insicuri e lenti. Pertanto, il loro utilizzo non è adatto se si eseguono progetti di scraping web avanzati e su larga scala. Utilizzando buoni proxy premium, è possibile ottenere un servizio di alta qualità e raschiare migliaia di pagine web senza subire blocchi o interruzioni. 

Per utilizzare un servizio proxy premium, dovrete pagare qualche dollaro e ottenere un provider che soddisfi le vostre esigenze di estrazione dei dati e garantisca la vostra privacy.

Scegliete i proxy d'élite

Di seguito sono riportate le tre principali categorie di proxy presenti su Internet.

  • Proxy d'élite
  • Proxy anonimi
  • Proxy trasparenti

I proxy d'élite sono l'opzione migliore da prendere in considerazione tra questi proxy, in quanto possono evitare i rilevamenti e aggirare le restrizioni. Con un proxy d'élite è possibile inviare solo l'intestazione REMOTE_ADDR, mantenendo vuote le altre intestazioni. In questo modo, è possibile ottenere una privacy ottimale con questi proxy.

D'altra parte, un proxy trasparente rivela i dettagli del vostro indirizzo IP e invia il vostro IP reale tramite l'intestazione HTTP_VIA e l'intestazione HTTP_X_FORWARDED_FOR. Il proxy anonimo non rivela l'indirizzo IP reale. Invia l'IP del proxy o lo lascia vuoto.

Combinare la rotazione dell'IP con la rotazione dell'agente utente

È possibile utilizzare la rotazione degli IP per ruotare più indirizzi IP ed evitare il rilevamento. Tuttavia, alcune misure anti-scraping possono identificare tali attività e bloccare la raccolta dei dati. Pertanto, è necessario ruotare anche gli agenti utente, oltre a ruotare gli indirizzi IP, per aumentare le possibilità di successo. 

Domande frequenti:

1. Come usare i proxy per ruotare gli indirizzi IP usando python?
Con l'aiuto delle richieste della libreria python, è possibile ruotare i proxy con facilità. In primo luogo, scaricate l'elenco dei proxy gratuiti dal sito web ProxyScrape, in secondo luogo create una funzione che potete usare per eseguire l'intero processo di rotazione degli IP; in terzo luogo, usate la funzione read per leggere i proxy gratuiti scaricati; infine, eseguite lo script usando il ciclo for per ottenere il proxy che è disponibile per una sessione.
2. Esiste un rotatore di deleghe disponibile online?
Sì, esistono dei rotatori di proxy disponibili online. Invece di ruotare manualmente i proxy del vostro datacenter, potete usare questi rotatori di proxy per fare il lavoro pesante. Ma si tratta di servizi a pagamento; se si vuole un rotatore di proxy gratuito, la possibilità migliore è costruire un rotatore con l'aiuto di python.
3. In che modo i proxy sono utili per lo scraping del Web?
I proxy aiutano a mascherare il vostro indirizzo IP originale e utilizzano il loro indirizzo IP per inviare diverse richieste al server di destinazione per ottenere le informazioni necessarie. Per lo scraping del Web, è necessario inviare rapidamente molte richieste, che il server di destinazione può vedere come un comportamento anomalo e bloccare il vostro indirizzo IP. Il proxy aiuta a evitare questi scenari.

Conclusione

È semplice creare un rotatore di proxy in Python. Si possono generare proxy casuali e poi costruire una logica per raschiare i dati dai siti web. Oltre ai proxy per centri dati e residenziali, le altre categorie sono i proxy d'élite, anonimi e trasparenti. I proxy d'élite sono l'opzione migliore perché sono difficili da rilevare dal sito web di destinazione. Potete usare i proxy anonimi se volete mantenere la vostra privacy su Internet. Infine, è possibile utilizzare i proxy trasparenti, che però offrono le minori possibilità di successo. Questo articolo si propone di fornire informazioni approfondite ed esempi su come utilizzare i proxy per ruotare gli indirizzi IP in python con semplici passi di codifica.