GBProxies

Comment configurer des proxies tournants dans Scrapy

Le HttpProxyMiddleware intégré de Scrapy lit le proxy depuis request.meta. Avec une passerelle tournante, vous définissez une URL et chaque requête obtient quand même une nouvelle IP.

Étapes

  1. Gardez HttpProxyMiddleware activé (il est activé par défaut)
  2. Définissez meta={"proxy": url} sur chaque requête, ou dans start_requests
  3. Placez le nom d'utilisateur et le mot de passe dans l'URL du proxy
  4. Réduisez CONCURRENT_REQUESTS_PER_DOMAIN si un site limite toujours le débit

Exemple de code

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}

Remplacez USERNAME et PASSWORD par les identifiants proxy de la page Proxies de la console. Le port 10000 est HTTP résidentiel ; voir les ports de chaque produit ci-dessous.

Conseils

  • Désactivez IMAGES_ENABLED et évitez les téléchargements multimédias pour économiser des GB
  • Utilisez DOWNLOAD_TIMEOUT 30 et RETRY_TIMES 3 pour des exécutions stables

Questions fréquentes

Ai-je besoin d'un middleware de rotation ?

Non. La passerelle tourne pour vous ; une seule URL de proxy suffit.

Comment configurer des proxies tournants dans Scrapy