IPIPGO proxy ip ¿Cómo configurar scrapy proxy dinámico ip? Custom download middleware en acción

¿Cómo configurar scrapy proxy dinámico ip? Custom download middleware en acción

En primer lugar, proxy middleware Scrapy en el final ¿cuál es el uso? Crawler hermanos deben haber encontrado esta situación: basta con ejecutar unos minutos del programa, el sitio de destino le dará IP bloqueado a la muerte. En este momento, proxy dinámico IP es un salvavidas, como jugar un juego para abrir la resurrección ilimitada colgar, se selló automáticamente cambiar el nuevo chaleco de seguir haciendo. ...

¿Cómo configurar scrapy proxy dinámico ip? Custom download middleware en acción

一、Scrapy代理中间件到底有啥用?

搞爬虫的兄弟应该都遇到过这种情况:刚跑几分钟程序,目标网站就给你IP封得死死的。这时候动态代理IP就是救命稻草,好比打游戏开无限复活挂,被封了自动换新马甲继续干。

Scrapy自带的代理设置太基础,应付不了复杂场景。咱们得自己写个Descargar middleware,这玩意儿就像快递公司的调度中心,能拦截每个请求,偷偷把快递员(请求)的工服(IP地址)给换了。

二、手把手造轮子:动态代理中间件

先准备个靠谱的代理池,这里用ipipgo的动态住宅代理举例。他们家的API返回格式长这样:

{
  "proxy": "123.45.67.89:8888",
  "expire_time": 1800
}

Una nueva.middlewares.py文件,核心代码也就20行:

import random
import requests
from scrapy import signals

class DynamicProxyMiddleware:
    def __init__(self, api_url):
        self.api = api_url + "?apikey=YOUR_API_KEY"
        
    @classmethod
    def from_crawler(cls, crawler):
        return cls(
            api_url=crawler.settings.get('IPIPGO_API')
        )

    def process_request(self, request, spider):
         捞个新鲜IP
        resp = requests.get(self.api)
        proxy = f"http://{resp.json()['proxy']}"
         重要!设置认证信息
        request.meta['proxy'] = proxy
        request.headers['Proxy-Authorization'] = 'Basic ' + base64.b64encode(b'username:password').decode()

三、配置文件的秘密参数

existesettings.py里激活咱们的中间件:

DOWNLOADER_MIDDLEWARES = {
    'your_project.middlewares.DynamicProxyMiddleware': 543,
}
IPIPGO_API = "https://api.ipipgo.com/getProxy"   官方接口地址

Cuidado con estos dos baches:

1. 优先级数字别乱填,要比默认的HttpProxyMiddleware(750)小
2. Información sobre la acreditación记得换成ipipgo后台给的账号密码

IV. Guía para evitar errores sobre el terreno

最近帮客户部署时遇到的真实问题:

sintomático método resolver un problema
连续返回407错误 检查Basic认证编码是否正确
El tiempo de supervivencia de la PI es demasiado corto 在API参数加&duration=600延长有效期
目标网站检测到WebDriver 开启ipipgo的header伪装功能

V. Preguntas rápidas y respuestas a las preguntas más frecuentes

P: ¿Qué debo hacer si la IP de mi proxy no suele ser válida?
R: El paquete residencial dinámico de ipipgo viene con elNo conmutación automática机制,建议把API调用频率设为每秒3-5次,他们家的IP池够大,经得起折腾。

P: ¿Desaceleración repentina del rastreador?
R: Comprueba si está encendidoSOLICITUDES_CONCURRENTES并发控制,建议配合ipipgo的Optimización regional功能,把代理节点选在目标服务器所在地。

Q:需要处理CAPTCHA验证码?
R: Actívalo en la consola ipipgo智能验证码绕过服务,这个要企业版套餐才支持,普通用户建议降低请求频率。

最后说个冷知识:用动态代理别开COOKIES_ENABLED,不然网站会发现不同IP用同一套cookie,立马露馅!如果业务必须带cookie,记得搭配ipipgo的suspensión de la sesión功能,他们叫Sticky Session,能保证特定时间段内IP不变。

Este artículo fue publicado o recopilado originalmente por ipipgo.https://www.ipipgo.com/es/ipdaili/47701.html

escenario empresarial

Descubra más soluciones de servicios profesionales

💡 Haz clic en el botón para obtener más detalles sobre los servicios profesionales

Nueva oferta de fin de año de IPs dinámicas 10W+ de EE.UU.

Profesional extranjero proxy ip proveedor de servicios-IPIPGO

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Póngase en contacto con nosotros

Póngase en contacto con nosotros

13260757327

Consulta en línea. Chat QQ

Correo electrónico: hai.liu@xiaoxitech.com

Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
Seguir WeChat
Síguenos en WeChat

Síguenos en WeChat

Volver arriba
es_ESEspañol