Scrapy proxy setup

Scrapy è uno dei client HTTP più diffusi negli stack di scraping. Puntalo su un endpoint PinguProxy e ogni richiesta uscirà dal tuo IP proxy — statico o rotante, via HTTP o SOCKS5.

Perché usare i proxy con Scrapy

Le richieste dirette espongono il tuo IP di casa e finiscono presto rate-limitati. Con Scrapy dietro PinguProxy, retry e burst partono da IP proxy, così i target vedono traffico distribuito invece di un singolo client rumoroso.

Cosa puoi fare

  • Mantieni un IP statico per job, così un target può whitelistarti o riconoscerti tramite cookie in modo coerente.
  • Ruota a ogni richiesta con SOCKS5h, così i burst di scraping sembrano traffico distribuito reale.
  • Usa pool di sessioni con retry per job lunghi che sopravvivono a 429 e timeout.
  • Usa uscite IPv4 o IPv6 a seconda di ciò che supporta l'infrastruttura del target.

Snippet di configurazione

Sostituisci username, password e porta con le credenziali della dashboard. Tutti gli esempi instradano sia HTTP sia HTTPS attraverso il proxy.

Middleware (static HTTP)
# middlewares.py
class PinguProxyMiddleware:
def process_request(self, request, spider):
request.meta["proxy"] = "http://username:password@proxy.pinguproxy.com:12933"
# settings.py
DOWNLOADER_MIDDLEWARES = {
"myproject.middlewares.PinguProxyMiddleware": 543,
}
Rotating IP (SOCKS5h)
# Rotate per request: keep the middleware but point it at the
# rotating endpoint. SOCKS5h resolves DNS on the proxy, so the exit
# IP is never leaked.
class RotatingProxyMiddleware:
def process_request(self, request, spider):
request.meta["proxy"] = "socks5h://username:password@proxy.pinguproxy.com:12933"
DOWNLOADER_MIDDLEWARES = {
"myproject.middlewares.RotatingProxyMiddleware": 543,
}

La porta mostrata (12933) è l'esempio predefinito; la dashboard elenca gli endpoint esatti dei tuoi proxy. SOCKS5h tiene le risoluzioni DNS sul proxy, così il tuo server DNS non vede mai i domini di destinazione.

Domande frequenti

Scrapy supporta SOCKS5?

Sì — le versioni moderne di Scrapy includono il supporto socks per gli URL socks5h://; se l'ambiente lo richiede, installa requests[socks].

Come ruoto gli IP a ogni richiesta con Scrapy?

Punta Scrapy sull'endpoint SOCKS5h rotante: ogni nuova connessione sceglie un IP di uscita fresco, mentre le sessioni sticky mantengono un IP finché non ne richiedi uno nuovo.

Posso mantenere lo stesso IP per tutta la sessione di scraping?

Sì. Usa l'endpoint HTTP statico con lo stesso URL proxy per ogni richiesta: l'IP di uscita resta fisso finché non cambi proxy nella dashboard.

Altre guide di configurazione

Pronto a connettere Scrapy?

Crea un proxy nella dashboard e incolla le tue credenziali negli snippet qui sopra — banda illimitata su ogni piano.