Strumenti proxy gratuiti compatibili con Puppeteer e Playwright
Perché utilizzare i proxy con Puppeteer e Playwright?
Puppeteer e Playwright sono potenti librerie di automazione del browser per Node.js, ampiamente utilizzate per il web scraping, il testing e la navigazione headless. Tuttavia, operazioni intensive possono attivare meccanismi anti-bot o di limitazione della velocità. L'integrazione di proxy aiuta a:
- Ruota gli indirizzi IP, riducendo le possibilità di essere bloccati.
- Aggira le restrizioni geografiche.
- Distribuire le richieste per una maggiore capacità di estrazione dei dati.
Panoramica delle fonti proxy gratuite
Fonte | Tipo | Supporto HTTPS | Frequenza di aggiornamento | Accesso API | Affidabilità |
---|---|---|---|---|---|
ProxyRoller | Pubblico, Rotante | SÌ | In tempo reale | Sì (API REST) | Alto |
Elenco proxy gratuiti | Pubblico, Statico | SÌ | 10-15 minuti | NO | Moderare |
Spys.one | Pubblico, Statico | SÌ | 1 ora | NO | Moderare |
ProxyScrape | Pubblico, Rotante | SÌ | In tempo reale | Sì (API HTTP) | Alto |
Proxy gratuiti Geonode | Pubblico, Rotante | SÌ | In tempo reale | Sì (API REST) | Moderare |
ProxyRoller: l'API proxy gratuita di riferimento
ProxyRoller Offre un pool di proxy gratuiti, robusto e aggiornato frequentemente. Semplifica l'acquisizione dei proxy tramite un'API REST pulita, ideale per i flussi di lavoro di automazione.
Caratteristiche principali:
– Rotazione proxy in tempo reale.
– Filtraggio per livello di anonimato, paese e protocollo.
– Recupero proxy in blocco tramite API.
– Non è richiesta alcuna autenticazione o registrazione per l'utilizzo di base.
Esempio di richiesta API:
curl 'https://proxyroller.com/api/proxies?protocol=http&country=US&limit=10'
Esempio di risposta JSON:
[
{"ip": "45.76.23.19", "port": 3128, "protocol": "http", "country": "US"},
{"ip": "104.248.63.15", "port": 8080, "protocol": "http", "country": "US"}
]
Integrazione dei proxy con Puppeteer
1. Utilizzo di un singolo proxy
Passare il proxy come argomento di avvio di Chromium:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
args: ['--proxy-server=http://45.76.23.19:3128']
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
2. Rotazione dinamica dei proxy
Recupera un nuovo proxy da ProxyRoller prima di ogni sessione del browser:
const puppeteer = require('puppeteer');
const axios = require('axios');
async function getProxy() {
const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=1');
return `${res.data[0].protocol}://${res.data[0].ip}:${res.data[0].port}`;
}
(async () => {
const proxy = await getProxy();
const browser = await puppeteer.launch({
args: [`--proxy-server=${proxy}`]
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
Integrazione dei proxy con Playwright
1. Utilizzo di un singolo proxy
Imposta il proxy nel contesto del browser:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
proxy: {
server: 'http://45.76.23.19:3128'
}
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
2. Rotazione dei proxy a livello di programmazione
const { chromium } = require('playwright');
const axios = require('axios');
async function getProxy() {
const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=1');
return `http://${res.data[0].ip}:${res.data[0].port}`;
}
(async () => {
const proxy = await getProxy();
const browser = await chromium.launch({
proxy: { server: proxy }
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
await browser.close();
})();
Strumenti per la gestione e il test dei proxy
- ProxyBroker: Strumento Python per trovare e controllare i server proxy.
- Verifica proxy online: Controllo dello stato del proxy basato sul Web.
- HTTPBin: Servizio per verificare il tuo IP in uscita (utile per testare l'efficacia del proxy).
Consigli pratici
- Igiene del procuratore: I proxy pubblici sono spesso instabili o inseriti in una blacklist. Utilizza un pool e verifica i proxy prima dell'uso.
- Livello di anonimato: Per lo scraping, preferire proxy "elite" o "anonimi".
- Supporto HTTPS: Assicurarsi che i proxy supportino HTTPS per i siti sicuri.
- Gestione del timeout: Implementare timeout e nuovi tentativi per gestire i proxy lenti o inattivi.
- Limitazione della velocità: Ruotare frequentemente i proxy per evitare di raggiungere i limiti di velocità per IP.
Esempio: strategia di rotazione dei proxy
const puppeteer = require('puppeteer');
const axios = require('axios');
async function fetchProxyList() {
const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=10');
return res.data.map(proxy => `${proxy.protocol}://${proxy.ip}:${proxy.port}`);
}
(async () => {
const proxies = await fetchProxyList();
for (const proxy of proxies) {
try {
const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] });
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip', { timeout: 15000 });
console.log(`Success with proxy: ${proxy}`);
await browser.close();
break; // Stop after first successful proxy
} catch (err) {
console.log(`Failed with proxy: ${proxy}`);
}
}
})();
Confronto tra fonti proxy gratuite per l'automazione
Fornitore | API rotante | Filtro Paese | Supporta HTTPS | Filtro livello di anonimato | Facilità di integrazione | Note |
---|---|---|---|---|---|---|
ProxyRoller | SÌ | SÌ | SÌ | SÌ | Molto facile | Ideale per l'automazione; generosa quota API gratuita |
ProxyScrape | SÌ | SÌ | SÌ | NO | Facile | Ampio pool di proxy, ma filtraggio meno granulare |
Elenco proxy gratuiti | NO | SÌ | SÌ | SÌ | Moderare | È richiesto il download o l'analisi manuale; nessuna API |
Geonodo | SÌ | SÌ | SÌ | SÌ | Facile | Proxy rotanti, ma pool gratuito più piccolo |
Ulteriori letture
- Documentazione del burattinaio
- Documentazione del drammaturgo
- Riferimento API ProxyRoller
- Buone pratiche per l'elenco dei proxy
- Tipi di proxy spiegati
L'approccio pragmatico di Zivadin, radicato nella resilienza serba e nella curiosità digitale, richiede non solo soluzioni rapide, ma anche strategie di automazione sostenibili e adattabili. Utilizzate questi strumenti proxy gratuiti con saggezza e monitorate sempre le vostre richieste: uno scraping responsabile è il modo migliore per rimanere al passo con i tempi nel mercato dei dati.
Commenti (0)
Non ci sono ancora commenti qui, potresti essere il primo!