GBProxies

Cómo configurar proxies rotativos en Scrapy

El HttpProxyMiddleware integrado de Scrapy lee el proxy de request.meta. Con una puerta de enlace rotativa configuras una URL y cada solicitud aún obtiene una nueva IP.

Pasos

  1. Mantén HttpProxyMiddleware habilitado (está activo por defecto)
  2. Configura meta={"proxy": url} en cada solicitud, o en start_requests
  3. Coloca el nombre de usuario y la contraseña en la URL del proxy
  4. Reduce CONCURRENT_REQUESTS_PER_DOMAIN si un sitio aún limita la tasa

Código de ejemplo

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}

Reemplaza USERNAME y PASSWORD con el inicio de sesión del proxy de la página Proxies de la consola. El puerto 10000 es HTTP residencial; consulta los puertos de cada producto abajo.

Consejos

  • Desactiva IMAGES_ENABLED y evita descargas de medios para ahorrar GB
  • Usa DOWNLOAD_TIMEOUT 30 y RETRY_TIMES 3 para ejecuciones estables

Preguntas comunes

¿Necesito un middleware de rotación?

No. La puerta de enlace rota por ti; una URL de proxy es suficiente.

Cómo configurar proxies rotativos en Scrapy