For the complete documentation index, see llms.txt. This page is also available as Markdown.

Scrapy

Integra Scrapy con Proxies de Oxylabs para crear rastreadores web rápidos y asíncronos usando una guía paso a paso sencilla.

Scrapy es un framework de Python de código abierto diseñado para el web scraping y la extracción de datos a gran escala. Por defecto, Scrapy enruta las solicitudes directamente desde tu red local.

Sigue los pasos a continuación para integrar los siguientes Oxylabs Proxies:

1

Elige el método de integración

Scrapy admite dos métodos principales para enrutar solicitudes a través de Proxies: Parámetro meta de la solicitud (configuración por solicitud) y Middleware personalizado de descarga (configuración global del proyecto).

Método 1: Parámetro meta de la solicitud

Pasa los detalles de autenticación del proxy directamente a instancias individuales de scrapy.Request mediante el meta diccionario. Este método se recomienda para arañas simples o cuando distintas solicitudes requieren configuraciones específicas de proxy.

import scrapy

class OxylabsSpider(scrapy.Spider):
    name = "oxylabs_spider"
    
    def start_requests(self):
        url = "https://ip.oxylabs.io/"
        proxy = "http://username:password@host:port"
        
        yield scrapy.Request(
            url=url,
            callback=self.parse,
            meta={"proxy": proxy}
        )

    def parse(self, response):
        ip_address = response.css("pre::text").get()
        self.logger.info(f"Connected via Oxylabs Proxy. Active IP: {ip_address}")

Método 2: Middleware personalizado de descarga (recomendado)

Para aplicar Proxies automáticamente en todas las solicitudes sin alterar el código de la araña, implementa un middleware personalizado de descarga de Scrapy.

Abre el archivo middlewares.py de tu proyecto de Scrapy y añade la OxylabsProxyMiddleware clase:

class OxylabsProxyMiddleware:
    @classmethod
    def from_crawler(cls, crawler):
        return cls(crawler.settings)

    def __init__(self, settings):
        self.username = settings.get("OXYLABS_USERNAME")
        self.password = settings.get("OXYLABS_PASSWORD")
        self.endpoint = settings.get("OXYLABS_ENDPOINT")

    def process_request(self, request, spider):
        host = f"http://{self.username}:{self.password}@{self.endpoint}"
        request.meta["proxy"] = host

Luego, registra el middleware y define tus credenciales de proxy en settings.py:

# Oxylabs Credentials
OXYLABS_USERNAME = "username"
OXYLABS_PASSWORD = "password"
OXYLABS_ENDPOINT = "host:port"

# Enable Downloader Middleware
DOWNLOADER_MIDDLEWARES = {
    "myproject.middlewares.OxylabsProxyMiddleware": 100,
    "scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 110,
}
2

Configura tu proxy

Ajusta los detalles del proxy y las credenciales de usuario del proxy de Oxylabs (creadas en la panel de Oxylabs) para el tipo de proxy que elijas:

Proxies residenciales y Mobile Proxies

Host: pr.oxylabs.io

Puerto: 7777

Nombre de usuario: customer-username

Contraseña: contraseña

También puedes usar parámetros adicionales con Proxies residenciales y Mobile Proxies para establecer la geolocalización (país, estado, ciudad, etc.) y controlar las sesiones. Consulta la documentación de Residential Proxies para obtener más información. La tabla siguiente ofrece una vista general de los parámetros disponibles y sus valores de ejemplo.

Parámetro de proxy
Ejemplo

Nodo de entrada del país

Host: us-pr.oxylabs.io

Puerto: 10000

País

Usuario: customer-username-cc-US

Estado

Usuario: customer-username-st-US_texas

Ciudad

Usuario: customer-username-city-paris

Continente

Usuario: customer-username-cn-NA

Código ZIP/postal

Usuario: customer-username-cc-US-postalcode-90210

Segmentación ASN

Usuario: customer-username-ASN-21928

Sesión (hasta 1440 minutos)

Usuario: customer-username-sessid-qwerty123-sesstime-1440

Sesión persistente

Host: us-pr.oxylabs.io

Puerto: 10001

Datacenter Proxies

Host: dc.oxylabs.io

Puerto: 8001

Nombre de usuario: user-userername

Contraseña: contraseña

El puerto es el número secuencial asignado a una dirección IP de la que puede encontrar en el panel de Oxylabs. El. Así, el puerto 8001 usa la primera dirección IP de tu lista. También puedes habilitar rotación automática de IP del proxy estableciendo el puerto en 8000.

Además, puedes especificar la geoubicación, por ejemplo, Estados Unidos, estableciendo el nombre de usuario del proxy en user-USERNAME-country-US.

El puerto 8001 elige una dirección IP aleatoria, pero se mantiene constante durante una sesión. Como alternativa, puedes rotar las IP de proxy con cada solicitud usando el puerto 8000.

Si quieres usar una geoubicación, por ejemplo, EE. UU., establece el nombre de usuario del proxy en user-USERNAME-country-US.

Dedicated Datacenter Proxies (Enterprise)

Host: 1.2.3.4 (dirección IP de tu que puede encontrar en el panel de Oxylabs. El)

Puerto: 60000 (HTTP) o 1180 (SOCKS5)

Nombre de usuario: username

Contraseña: contraseña

Para Dedicated Datacenter Proxies Enterprise (comprados a través del equipo de ventas), tendrás que elegir una dirección IP de la adquirida que puede encontrar en el panel de Oxylabs. El.

Dedicated Datacenter Proxies (autoservicio)

Host: ddc.oxylabs.io

Puerto: 8001

Nombre de usuario: user-userername

Contraseña: contraseña

Para Dedicated Datacenter Proxies de autoservicio (comprados a través del panel de Oxylabs), el puerto indica el número secuencial de una dirección IP de la adquirida que puede encontrar en el panel de Oxylabs. El. Si quieres obtener una IP distinta con cada solicitud, cambia el Puerto a 8000 para habilitar la rotación de proxy.

ISP Proxies

Host: isp.oxylabs.io

Puerto: 8001

Nombre de usuario: user-username

Contraseña: contraseña

Con ISP Proxies, el puerto se asigna a una dirección IP específica y su ubicación. Por lo tanto, el puerto 8001 siempre elegirá la primera IP de tu que puede encontrar en el panel de Oxylabs. El.

Si quieres obtener una IP distinta con cada solicitud, cambia el Puerto a 8000 para habilitar la rotación de proxy.

Dedicated ISP Proxies

Host: disp.oxylabs.io

Puerto: 8001

Nombre de usuario: PASSWORD

Contraseña: PASSWORD

Necesitarás elegir el puerto asignado a una dirección IP de los Proxies comprados que puede encontrar en el panel de Oxylabs. El, que puedes encontrar en el panel de Oxylabs. El 8001 puerto seleccionará la primera dirección IP de tu lista para todas las solicitudes. Usa el puerto 8000 para la rotación automática de IP del proxy.

3

Ejecuta la araña

Ejecuta tu araña de Scrapy desde la terminal usando el crawl comando:

scrapy crawl oxylabs_spider

Si se configura correctamente, Scrapy ejecutará las solicitudes a través de la pasarela proxy de Oxylabs y registrará la dirección IP de salida externa asignada.

Última actualización

¿Te fue útil?