Come utilizzare i proxy gratuiti con Selenium o Puppeteer

Come utilizzare i proxy gratuiti con Selenium o Puppeteer

Comprendere i proxy nell'automazione web

I proxy fungono da agenti clandestini di Internet, mascherando il vostro indirizzo IP e consentendovi di attraversare le frontiere digitali con discrezione. Nel contesto dell'automazione web, dove Selenium e Puppeteer piroettano nel teatro del browser, i proxy sono indispensabili per aggirare limiti di velocità, restrizioni geografiche e sorveglianza. I proxy gratuiti, sebbene capricciosi ed effimeri, possono essere sufficienti per scenari di scraping o test leggeri e non critici.

Tipi di proxy e loro caratteristiche

Tipo di proxy Livello di anonimato Protocolli supportati Caso d'uso tipico Affidabilità
HTTP Da basso a medio HTTP, HTTPS Semplice web scraping Basso
SOCKS4/5 Alto SOCKS4, SOCKS5 Protocolli complessi, HTTPS Medio
Trasparente Nessuno (rivela l'IP) HTTP, HTTPS Caching, uso interno Molto basso
Elite/Anonimo Alto HTTP, HTTPS Bypassare i blocchi geografici Medio

Per un compendio di elenchi di proxy gratuiti, consultare https://free-proxy-list.net/ O https://www.sslproxies.org/.

Utilizzo di proxy gratuiti con Selenium (Python)

1. Installazione delle dipendenze

pip install selenio

Scarica l'ultima versione Driver Chrome compatibile con la tua versione di Chrome.

2. Configurazione di un proxy in Selenium

Il browser, questa marionetta digitale, può essere comandato così:

da selenium import webdriver da selenium.webdriver.chrome.options import Options proxy = "186.121.235.66:8080" # Sostituisci con il tuo proxy gratuito options = Options() options.add_argument(f'--proxy-server=http://{proxy}') driver = webdriver.Chrome(options=options) driver.get('https://httpbin.org/ip') print(driver.page_source) driver.quit()

Tabella: Switch proxy Chrome comuni

Opzione Descrizione
--proxy-server=http://IP:PORT Imposta proxy HTTP
--proxy-server=https=IP:PORT Imposta proxy HTTPS
--proxy-bypass-list=localhost;127.0.0.1 Escludi indirizzi dal proxy

3. Utilizzo di proxy con autenticazione

I proxy gratuiti con autenticazione sono delle gemme rare, ma se dovessi imbatterti in uno di questi:

da selenium import webdriver da selenium.webdriver.chrome.service import Servizio da selenium.webdriver.chrome.options import Opzioni # I proxy autenticati richiedono una soluzione alternativa con l'estensione di Chrome da selenium.webdriver.common.by import By import zipfile proxy_host = 'proxy.example.com' proxy_port = 8000 proxy_user = 'user' proxy_pass = 'pass' manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", " ", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] } } """ background_js = f""" var config = {{ mode: "fixed_servers", rules: {{ singleProxy: {{ scheme: "http", host: "{proxy_host}", port: parseInt({proxy_port}) }}, bypassList: ["localhost"] }} }}; chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}}); function callbackFn(details) {{ return {{ authCredentials: {{ username: "{proxy_user}", password: "{proxy_pass}" }} }}; }} chrome.webRequest.onAuthRequired.addListener( callbackFn, {{urls: [" "]}}, ['blocking'] ); """ # Crea l'estensione proxy pluginfile = 'proxy_auth_plugin.zip' con zipfile.ZipFile(pluginfile, 'w') come zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) chrome_options = Options() chrome_options.add_extension(pluginfile) driver = webdriver.Chrome(options=chrome_options) driver.get('https://httpbin.org/ip')

Riferimento: Autenticazione proxy Selenium (GitHub Gist)

Utilizzo di proxy gratuiti con Puppeteer (Node.js)

1. Installazione di Puppeteer

npm install puppeteer

2. Avvio di Puppeteer con un proxy

Lascia che il browser indossi la sua nuova maschera:

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://186.121.235.66:8080'] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

3. Gestione dell'autenticazione proxy

Quando il guardiano richiede le credenziali:

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://proxy.example.com:8000'] }); const page = await browser.newPage(); await page.authenticate({ username: 'user', password: 'pass' }); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

4. Rotazione dei proxy in Puppeteer

Un balletto di identità effimere, così orchestrato:

const proxies = [ 'http://proxy1:port', 'http://proxy2:port', 'http://proxy3:port' ]; const puppeteer = require('puppeteer'); (async () => { for (const proxy of proxies) { const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(`Proxy: ${proxy}\n${body}\n`); await browser.close(); } })();

Fonti proxy gratuite

Nome Indirizzo URL Caratteristiche
Elenco proxy gratuito https://free-proxy-list.net/ Ampio elenco HTTP/S, aggiornato
Proxy SSL https://www.sslproxies.org/ Proxy HTTPS, aggiornamento rapido
ProxyScrape https://proxyscrape.com/free-proxy-list Protocolli multipli
Spia.uno http://spys.one/en/ Filtraggio avanzato

Migliori pratiche e limitazioni

  • Natura effimera: I proxy gratuiti spesso scompaiono senza preavviso; monitora la loro vitalità utilizzando strumenti come Controllo proxy.
  • Velocità e affidabilità: Aspettatevi latenza, timeout e qualche occasionale vicolo cieco.
  • Sicurezza: Non utilizzare mai proxy gratuiti per account sensibili: gli attacchi man-in-the-middle si nascondono nell'ombra.
  • Considerazioni legali ed etiche: Rispettare sempre robots.txt e i termini di servizio.

Esempio di convalida proxy (Python)

Prima di richiamare il browser, testa il polso del proxy:

richieste di importazione proxy = "186.121.235.66:8080" proxy = {"http": f"http://{proxy}", "https": f"http://{proxy}"} prova: risposta = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=5) stampa(response.json()) eccetto Eccezione come e: stampa(f"Proxy non riuscito: {e}")

Link alle risorse

Teofilo Beauvais

Teofilo Beauvais

Analista proxy

Théophile Beauvais è un analista proxy di 21 anni presso ProxyMist, dove è specializzato nella cura e nell'aggiornamento di elenchi completi di server proxy da tutto il mondo. Con un'innata attitudine per la tecnologia e la sicurezza informatica, Théophile è diventato un membro fondamentale del team, garantendo la fornitura gratuita di server proxy SOCKS, HTTP, elite e anonimi affidabili agli utenti di tutto il mondo. Nato e cresciuto nella pittoresca città di Lione, la passione di Théophile per la privacy digitale e l'innovazione è nata in giovane età.

Commenti (0)

Non ci sono ancora commenti qui, potresti essere il primo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *