GBProxies

So richten Sie rotierende Proxies in Scrapy ein

Scrapys integrierte HttpProxyMiddleware liest den Proxy aus request.meta. Mit einem rotierenden Gateway setzen Sie eine URL und jede Anfrage erhält dennoch eine neue IP.

Schritte

  1. Lassen Sie HttpProxyMiddleware aktiviert (es ist standardmäßig aktiviert)
  2. Setzen Sie meta={"proxy": url} für jede Anfrage oder in start_requests
  3. Benutzername und Passwort in die Proxy-URL einfügen
  4. CONCURRENT_REQUESTS_PER_DOMAIN verringern, wenn eine Seite weiterhin ratenbegrenzt

Beispielcode

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}

Ersetzen Sie USERNAME und PASSWORD durch die Proxy-Anmeldedaten von der Proxies-Seite der Konsole. Port 10000 ist Residential HTTP; siehe die Ports jedes Produkts unten.

Tipps

  • IMAGES_ENABLED ausschalten und Mediendownloads vermeiden, um GB zu sparen
  • DOWNLOAD_TIMEOUT 30 und RETRY_TIMES 3 für stabile Durchläufe einstellen

Häufige Fragen

Brauche ich eine Rotations-Middleware?

Nein. Das Gateway übernimmt die Rotation für Sie; eine Proxy-URL reicht aus.

So richten Sie rotierende Proxies in Scrapy ein