GBProxies

Jak skonfigurować rotujące proxy w Scrapy

Wbudowane HttpProxyMiddleware Scrapy odczytuje proxy z request.meta. Z rotującą bramą ustawiasz jeden URL, a każde żądanie nadal otrzymuje nowe IP.

Kroki

  1. Pozostaw HttpProxyMiddleware włączone (jest domyślnie włączone)
  2. Ustaw meta={"proxy": url} na każdym żądaniu lub w start_requests
  3. Wprowadź nazwę użytkownika i hasło w adresie URL proxy
  4. Zmniejsz CONCURRENT_REQUESTS_PER_DOMAIN, jeśli strona nadal ogranicza liczbę żądań

Przykładowy kod

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}

Zastąp USERNAME i PASSWORD loginem proxy ze strony Proxies w konsoli. Port 10000 to residential HTTP; zobacz porty każdego produktu poniżej.

Porady

  • Wyłącz IMAGES_ENABLED i unikaj pobierania multimediów, aby oszczędzać GB
  • Użyj DOWNLOAD_TIMEOUT 30 i RETRY_TIMES 3 dla stabilnego działania

Częste pytania

Czy potrzebuję middleware do rotacji?

Nie. Brama rotuje za Ciebie; wystarczy jeden adres URL proxy.

Jak skonfigurować rotujące proxy w Scrapy