GBProxies

Come configurare proxy rotanti in Scrapy

L'HttpProxyMiddleware integrato in Scrapy legge il proxy da request.meta. Con un gateway rotante imposti un URL e ogni richiesta ottiene comunque un nuovo IP.

Passaggi

  1. Mantieni HttpProxyMiddleware abilitato (è attivo per impostazione predefinita)
  2. Imposta meta={"proxy": url} su ogni richiesta, o in start_requests
  3. Inserisci username e password nell'URL del proxy
  4. Riduci CONCURRENT_REQUESTS_PER_DOMAIN se un sito applica ancora limiti di frequenza

Codice di esempio

import scrapy

PROXY = "http://USERNAME-cc-gb:PASSWORD@gw.gbproxies.cc:10000"

class PricesSpider(scrapy.Spider):
    name = "prices"
    start_urls = ["https://example.com/catalog"]

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url, meta={"proxy": PROXY})

    def parse(self, response):
        for href in response.css("a.product::attr(href)").getall():
            yield response.follow(href, self.parse_item, meta={"proxy": PROXY})

    def parse_item(self, response):
        yield {"title": response.css("h1::text").get(), "url": response.url}

Sostituisci USERNAME e PASSWORD con le credenziali del proxy dalla pagina Proxies della console. La porta 10000 è HTTP residenziale; vedi le porte di ogni prodotto qui sotto.

Consigli

  • Disattiva IMAGES_ENABLED ed evita download multimediali per risparmiare GB
  • Imposta DOWNLOAD_TIMEOUT 30 e RETRY_TIMES 3 per esecuzioni stabili

Domande comuni

Ho bisogno di un middleware di rotazione?

No. Il gateway ruota per te; basta un URL proxy.

Come configurare proxy rotanti in Scrapy