Quando si lavora con Selenium per lo scraping o l'automazione del web, l'integrazione dei proxy è un must. I proxy consentono di aggirare divieti, limiti di velocità e limitazioni geografiche, rendendo le attività più semplici ed efficienti. Ma configurare i proxy in Selenium può essere una sfida, soprattutto se si ha a che fare con l'autenticazione o si devono monitorare le richieste HTTP. È qui che entra in gioco Selenium Wire.
Selenium Wire è una versione estesa di Selenium che aggiunge ulteriori funzionalità avanzate, consentendo di autenticare facilmente i proxy, intercettare le richieste e le risposte HTTP ed eseguire il debug del traffico di rete.
In questa guida mostreremo come impostare i proxy in Selenium usando selenio-filo
e il webdriver-manager
. In genere, è necessario scaricare i file binari per i webdriver dai browser e mantenere aggiornamenti regolari. Il webdriver-manager semplifica questo processo gestendo queste attività per voi.
Alla fine di questo blog, avrete un'impostazione di Selenium completamente configurata su misura per i proxy di ProxyScrape , pronta ad affrontare qualsiasi sfida vi si presenti. Tuffiamoci!
Per accedere allo script completo senza seguire l'intero tutorial, fate clic su questo link per copiare il codice completo.
Prima di immergerci nell'impostazione dei proxy in Selenium, assicuriamoci di avere installato e pronto i seguenti strumenti e librerie:
Eseguire il seguente comando per installare tutte le dipendenze:
pip installare selenium-wire webdriver-manager
Nota: è possibile che si verifichi l'errore "ModuleNotFoundError: Nessun modulo chiamato blinker._saferef". Questo problema può essere risolto aggiornando la libreria blinker alla versione 1.7.0.
lampeggiatore
pip disinstallare blinker
pip installa blinker==1.7.0
Una volta soddisfatti i prerequisiti, vediamo di suddividere la configurazione dello script in tre semplici passaggi:
Dopo aver trattato i prerequisiti, passiamo allo script vero e proprio. Questa guida passo passo vi aiuterà a integrare ProxyScrape deleghe residenziali con Selenium utilizzando selenio-filo
e webdriver-manager
.
Si inizia importando le librerie necessarie:
importare re
da seleniumwire import webdriver
da selenium.webdriver.chrome.service import Service
da selenium.webdriver.chrome.options importare Options
da webdriver_manager.chrome import ChromeDriverManager
Definire i dettagli del proxy ProxyScrape :
indirizzo_proxy = "rp.proxyscrape.com:6060"
proxy_username = "il tuo_proxy_username"
proxy_password = "la tua_proxy_password".
(nome_utente_proxy, password_proxy)
con le credenziali reali di ProxyScrape .Impostare il proxy in Selenium Wire:
sw_options = {
'proxy': {
'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
}
}
Ottimizzare le impostazioni di Chrome per migliorare le prestazioni:
chrome_options = Opzioni()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
Impostazione selenio-filo
con webdriver-manager
:
servizio = servizio(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, seleniumwire_options=sw_options, options=chrome_options)
Accedere all'endpoint ProxyScrape Judge per testare il proxy:
driver.get('https://ssl-judge2.api.proxyscrape.com/')
Estrarre e visualizzare l'indirizzo IP proxy utilizzando una regex:
# Esempio: Estrarre l'IP dalla risposta
response = driver.page_source
# usando una semplice regex per analizzare l'ip di origine
print("Risposta:", risposta)
print("Il vostro IP è:", re.search("HTTP_X_FORWARDED_FOR = (\d+\.)+\d+", response).group().split("=")[-1])
# chiudere l'istanza del browser
driver.quit()
HTTP_X_FORWARDED_FOR
ed estrae l'IP proxyIn conclusione, l'uso dei proxy residenziali diProxyScrape con Selenium Wire è una soluzione solida per tutti coloro che necessitano di funzionalità avanzate di scraping e automazione del web con una maggiore privacy e sicurezza.
Seguendo questa guida, è possibile configurare un ambiente continuo che non solo aggira le restrizioni, ma richiede anche un minimo sforzo di configurazione. Questo metodo sfrutta strumenti potenti come Selenium Wire e WebDriver Managerper gestire e instradare in modo efficiente il traffico attraverso i proxy, assicurando che le attività di scraping rimangano efficienti e affidabili.
Se avete bisogno di assistenza con il web scraping o avete domande sul nostro prodotto, non esitate a contattarci tramite live chat. Potete anche unirvi alla nostra comunità Discord per ricevere supporto e aggiornamenti.