Manos a la obra con Python para construir un proxy staging area
Hermanos que participan en el desarrollo de la red debe saber, a veces la depuración de interfaz o cuenta de operación por lotes, sin tránsito proxy fiable realmente cansado. Hoy tomamos Python como un martillo, noquear a un servidor proxy HTTP, y hablar de cómo elegir un recursos proxy más fiables.
Un servidor proxy es un mensajero.
Por ejemplo, quieres pedirle al rey de al lado que te ayude a preguntar algo, pero no quieres aparecer. El servidor proxy es el chico de los recados, que transmite lo que quieres decir y luego lo devuelve. Hablar en código es precisamente eso:
importar servidor de sockets
class ProxyHandler(socketserver.)
class ProxyHandler(socketserver.BaseRequestHandler): def handle(self).
print("Un amigo llama a la puerta ->", self.direccion_cliente)
La lógica de reenvío de peticiones se maneja aquí...
Este montón de código parece sencillo, pero en realidad esconde un par deel diablo1. tienes que lidiar con todo tipo de cabeceras de petición extrañas 2. las conexiones largas son propensas a atascarse 3. las transferencias de archivos grandes pueden hacer explotar la memoria. No te preocupes, nos tomaremos nuestro tiempo más tarde.
Construir una rueda en cuatro pasos
1. parte receptora: escucha en el puerto con socketserver e inicia un nuevo hilo cuando entra una persona
2. desempaquetarextrayendo la dirección de destino de la cabecera de la petición HTTP
3. segundo pasador (en fútbol): Tome la dirección y vuelva a empaquetar la solicitud.
4. mensajería: devuelve la respuesta del servidor de destino por donde vino.
Fragmento de código
def reenviar_petición(self, host, puerto, petición).
con socket.socket(socket.AF_INET, socket.SOCK_STREAM) como s:
s.connect((host, port))
s.sendall(request)
return s.recv(4096)
Guía de selección de IP proxy
tipología | Caducidad | tempo | Escenarios aplicables |
---|---|---|---|
IP residencial dinámica | minuto | moderado | adquisición de datos |
IP estática de la sala de servidores | a largo plazo | muy rápido | API de acoplamiento |
IP móvil | por hora | moviéndose rápidamente | PRUEBAS DE APLICACIONES |
Tengo que mencionar algo aquí.La familia ipipgo es única.El grupo de IP dinámicas es ridículamente grande y viene con optimización inteligente de rutas. La última vez que utilicé su IP estática para medir la latencia, en realidad se puede presionar a 50ms o menos, más estable que su propia banda ancha.
Guía práctica para evitar el pozo
encontrarRestablecimiento de la conexiónNo te asustes, el 80% de las veces el otro servidor es demasiado entusiasta para ti. Es hora de conseguir:
1. añade un try-except para tragar la excepción
2. Canal IP alternativo para la conmutación ipipgo
3. Ajuste de los intervalos de solicitud
Ejemplo de gestión de excepciones
try: response = self.forward_request(host, port, request)
response = self.forward_request(host, port, request)
except ConnectionResetError.
print("El otro lado no está jugando, cambiar a otro camino")
self.switch_proxy() Aquí llamamos a la API ipipgo para cambiar de IP.
Pared blanca de respuestas
P: ¿Qué puedo hacer con la velocidad de caracol del agente?
R: En primer lugar comprobar si el bombeo de la red local, y luego cambiar ipipgo de alta velocidad de la línea de sala de servidores, recuerde que debe utilizar suHerramientas de medición de la velocidadElige el nodo más rápido
Q:¿Cuál es la situación que la autenticación falla todo el tiempo?
R: El 80% no está configurado en la lista blanca correcta, en el fondo ipipgo a la IP local más la lista blanca, o utilizar el método de autenticación de contraseña de la cuenta.
P:¿Qué debo hacer si quiero utilizar más de un agente al mismo tiempo?
R: Añade un sondeo de IP pool en el código con ipipgo'sInterfaz de extracción por lotesSi desea utilizar una IP seleccionada aleatoriamente para cada solicitud, puede utilizar
Seamos realistas.
Construir tu propio servidor proxy es divertido, pero no es barato de mantener. Si el proyecto es serio, se recomienda ir directamente a ipipgo soluciones ya hechas. Su acceso a la API es simple, pero también con la sustitución automática de IP y el mecanismo de reintento de fallo, que su propio tirar un montón de preocupaciones. El tiempo clave no mueren, de pie sobre los hombros de gigantes no es una desgracia.