
Enseñanza práctica del uso de PySpider para colgar proxies
¿Cuál es el mayor temor de los rastreadores? ¡Que te bloqueen la IP está definitivamente entre los tres primeros! Hoy, vamos a hablar de cómo ponerle un chaleco a un crawler en PySpider - usando una IP proxy para mantenerlo a salvo. No te dejes intimidar por esos tutoriales complicados, de hecho, la configuración del proxy es más simple que cocinar fideos.
¿Por qué tengo que utilizar una IP proxy?
Para dar una castaña: usted va al supermercado todos los días para agarrar el precio especial de los huevos, tres días consecutivos con el mismo vestido rojo para ir, el cuarto día de los guardias de seguridad directamente a detener fuera del niño. Proxy IP es un armario de ropa para el rastreador, cada vez que salga y cambiar de llevar. Con el proxy de ipipgo, es equivalente a alquilar una tienda de ropa directamente, con "ropa" de más de 200 países de todo el mundo para elegir.
Configuración del proxy en tres pasos
Importa primero el conjunto de herramientas necesario
from pyspider.libs.base_handler import
clase MyCrawler(BaseHandler).
crawl_config = {
proxy': 'http://username:password@proxy_ip:port', esta es la dirección proxy proporcionada por ipipgo
'headers': {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}
}
@every(minutos=2460)
def on_start(self).
self.crawl('http://目标网站.com', callback=self.index_page)
Lo más destacado:Cuando la dirección proxy se obtiene en el backend de ipipgo, recuerde seleccionar el formato de protocolo HTTP/HTTPS. Se recomienda utilizar IP residencial dinámicaPaquete residencial dinámico (estándar)a 7,67 $/GB es más fácil para los novatos.
Truco de cambio automático de IP dinámica
Me gustaría implementar el cambio automático de IP por petición, utilizando la interfaz API de ipipgo para agarrar y usar:
importar aleatorio
def get_proxy().
Aquí llamamos a la interfaz API de ipipgo
proxy_list = ["ip1:puerto", "ip2:puerto", "ip3:puerto"].
return random.choice(lista_proxy)
clase AutoProxyHandler(BaseHandler).
class AutoProxyHandler(BaseHandler): def make_request(self, url, callback): return Request(url, callback).
return Request(url, callback
callback=callback, proxy=get_proxy())
proxy=get_proxy()) Se carga automáticamente para cada petición.
Guía para evitar el pozo (sesión de control de calidad)
P: ¿Qué debo hacer si el agente falla de repente?
R: ipipgo cliente viene con la detección de latido del corazón, encontró que la IP se cuelga cortará automáticamente la nueva IP, con el teléfono móvil se conectan automáticamente a WiFi una razón.
P: ¿Cómo puedo comprobar si el proxy funciona?
R: Añada un paso de prueba al rastreador:
self.crawl('http://httpbin.org/ip', callback=self.check_ip)
def comprobar_ip(self, respuesta): print(respuesta.texto)
print(response.text) La IP mostrada aquí debería ser una IP proxy.
Cómo elegir un paquete sin pisar la mina
| Tipo de empresa | Paquetes recomendados | Escenarios aplicables |
|---|---|---|
| Adquisición de datos de alta frecuencia | Viviendas estáticas | 35/IP puede utilizarse durante todo un mes, adecuado para la vigilancia a largo plazo |
| Enterprise Crawler | Residencial dinámico (empresa) | 9,47/GB con canal VIP, ¡consigue datos más rápido! |
| Pequeños proyectos individuales | Residencial dinámico (estándar) | 7,67 Precio de la col, primera opción para la práctica |
Por último, no pierdas el tiempo en proxies gratuitos, los he probado antes, y 8 de cada 10 proxies gratuitos son malos. línea TK de ipipgo tiene una latencia medida de menos de 200ms, que es casi tan rápido como la red local. Su servicio de atención al cliente también puede dar soluciones a medida, la última vez un hermano para subir los datos de comercio electrónico del sudeste asiático, directamente con una línea transfronteriza.

