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:
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"] = hostLuego, 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,
}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
Nota: No olvides añadir customer- prefijo a tu nombre de usuario.
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.
Host: us-pr.oxylabs.io
Puerto: 10000
Usuario: customer-username-cc-US
Usuario: customer-username-st-US_texas
Usuario: customer-username-city-paris
Usuario: customer-username-cn-NA
Usuario: customer-username-cc-US-postalcode-90210
Usuario: customer-username-ASN-21928
Sesión (hasta 1440 minutos)
Usuario: customer-username-sessid-qwerty123-sesstime-1440
Host: us-pr.oxylabs.io
Puerto: 10001
Datacenter Proxies
Host: dc.oxylabs.io
Puerto: 8001
Nombre de usuario: user-userername
Contraseña: contraseña
Nota: No olvides añadir user- prefijo a tu nombre de usuario.
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
Nota: No olvides añadir user- prefijo a tu nombre de usuario.
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
Nota: No olvides añadir user- prefijo a tu nombre de usuario.
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
Nota: No olvides añadir user- prefijo a tu nombre de usuario.
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.
Última actualización
¿Te fue útil?

