
Manos a la obra con Python para construir un proxy staging area
Recientemente, muchos amigos que hacen la captura de datos preguntó Lao Zhang, quiere lanzar un servidor proxy y miedo de problemas. Hoy en día, vamos a tomar Python para abrir el cuchillo, el conjunto puede realmente ejecutar un servicio proxy HTTP. No se asuste, incluso si usted es un principiante, siga los pasos para asegurarse de que usted puede hacer.
¿Por qué crear su propio agente?
Por ejemplo, si tienes un lote de IPs proxy para probar, no puedes configurarlas manualmente una a una, ¿verdad? Tu propio servicio es como un clasificador inteligente, que puede cambiar automáticamente entre diferentes IPs para las pruebas. Otro ejemplo es que algunos servicios requieren la conversión de protocolo específico, las herramientas ya hechas en el mercado pueden no ser adecuados para el apetito.
Aquí viene el punto:
Las principales ventajas de los servidores proxy autoconstruidos sonControl total sobre el destino del tráfico. Puedes añadir registros, filtrado de solicitudes y otras funciones personalizadas, como poner cámaras de vigilancia en los canales de datos.
Prepara tus cosas.
Utilizaremos el módulo http.server de la biblioteca estándar de Python como base, y luego instalaremos la biblioteca requests para gestionar las peticiones. Abre cmd y pulsa esto:
pip install solicitudes
Por cierto, ten preparada la documentación de la API de ipipgo, necesitarás usar su pool de proxys para hacer pruebas más adelante. Recuerda que su dirección de extracción tiene este aspecto:
https://api.ipipgo.com/getproxy?key=你的密钥
Configuración básica del proxy
En primer lugar todo el prototipo de la lata hacia adelante, 20 líneas de código para hacerlo:
from http.server import BaseHTTPRequestHandler, HTTPServer
class ProxyHandler(BaseHTTPRequestHandler):: do_GET(self): do_GET(self).
def do_GET(self).
Aquí es donde ocurre la magia
importar requests
resp = requests.get(self.path,
proxies={'http': 'dirección proxy proporcionada por ipipgo'})
self.send_response(resp.status_code)
para k,v en resp.headers.items()::
self.send_header(k, v)
self.send_header(k, v)
self.wfile.write(resp.content)
servidor = HTTPServer(('', 8888), ProxyHandler)
server.serve_forever()
Tras ejecutarlo, el navegador establece el proxy en 127.0.0.1:8888, y el acceso a la página web saldrá a través de la IP proxy de ipipgo. Esta edición para mendigos es sencilla pero completa.
Añade algunas mejoras útiles al agente
La versión básica es sólo un juguete, necesitamos añadir algo real:
1. Dispositivo automático de cambio de IP
def obtener_nuevo_proxy().
Llama a la API de ipipgo para obtener una nueva IP.
return requests.get('dirección API de ipipgo').json()['proxy']
2. Pequeño libro de peticiones
Añadir una función de registro de escritura en el manejador para registrar qué IP visitó qué sitio web, con el fin de facilitar el posterior análisis de la tasa de éxito.
3. Válvula limitadora de caudal
Utilice el módulo TIME para controlar la velocidad de transmisión y evitar la sobrecarga de la IP. Especialmente cuando se utiliza una IP residencial dinámica, esta función puede evitar sobrecargas.
Jugando con el servicio ipipgo
Tengo que presumir de las tres mejores cosas de ipipgo aquí:
| Tipo de envase | Escenarios aplicables | Consejos para ahorrar dinero |
|---|---|---|
| Residencial dinámico (estándar) | Recogida rutinaria de datos | 7,67 $/GB |
| Residencial dinámico (empresa) | requisitos de alta concurrencia | 9,47 yuanes/GB |
| Viviendas estáticas | PI fija a largo plazo | 35 $/mes |
Su línea TK es especialmente potente a la hora de hacer ciertos negocios en el extranjero, ante un amigo que hacía comercio electrónico con esta solución, la tasa de éxito de la solicitud de 60% directamente se disparó a 92%.
Preguntas frecuentes sobre el desminado
P: ¿Qué pasa con la velocidad de los agentes, parecida a la de los caracoles?
R: Primero verifique si está utilizando una IP libre, luego confirme el tipo de protocolo. Recuerde seleccionar el mismo nodo geográfico cuando utilice la IP residencial estática de ipipgo.
P: ¿El código informa de un error de certificado SSL?
R: Añada verify=False a las peticiones, pero no se recomienda en entornos formales.
P: ¿Cómo elijo el paquete adecuado?
A: la pequeña cantidad de datos seleccionados versión estándar dinámico, la necesidad de IP fija selección de estática, de clase empresarial de alta concurrencia directamente a encontrar su tecnología de soluciones personalizadas
Direcciones sugeridas para la actualización
Únete si quieres ser más profesional:
1. Módulo de comprobación de la salud de la IP proxy
2. Mecanismo automático de reintento para solicitudes fallidas
3. Estadísticas de consumo de tráfico
Existen soluciones preparadas para todos estos casos en la documentación para desarrolladores de ipipgo como referencia.
Por último, un servidor proxy hecho por uno mismo es como tener una mascota, tienes que mantenerlo y actualizarlo regularmente. Si eres demasiado perezoso para hacerlo, puedes usar las herramientas cliente de ipipgo para ahorrarte tiempo y esfuerzo, y su función de cambio de IP con un solo clic es realmente buena.

