
Te enseñamos a jugar con proxy IP con Python
A menudo me preguntan cómo portar un proxy IP probado con cURL a un proyecto Python. No es difícil, pero es fácil que los novatos se metan en problemas. Hoy, vamos a utilizar la forma más práctica de desmenuzar las migajas para entender cómo cURL peticiones proxy en código Python.
Lectura de parámetros proxy en cURL
Empecemos con un comando cURL típico con un proxy:
curl -x http://user:pass@proxy.ipipgo.io:8080 https://example.com
aquí estánparámetro -xes la clave para configurar un servidor proxy. Presta atención a la estructura de direcciones:Protocolo://nombredeusuario:contraseña@dirección del proxy:puertoVoy a utilizar este formato más adelante. Recuerda este formato, lo necesitarás para convertir a Python más tarde.
El triple hacha de las peticiones Python
La biblioteca de peticiones de uso frecuente en Python maneja los proxies de una manera muy sencilla.Formato del diccionario proxyConvirtamos el cURL anterior en código. Convirtamos el cURL anterior en código:
solicitudes de importación
proxies = {
'http': 'http://user:pass@proxy.ipipgo.io:8080',
https: http://user:pass@proxy.ipipgo.io:8080
}
response = requests.get('https://example.com', proxies=proxies)
print(respuesta.texto)
Tenga en cuenta que aquí hay un escollo: mucha gente sólo escribe proxies http, y como resultado, las peticiones https fallan. Así queDeben asignarse tanto http como https.Dos protocolos.
Guía para evitar trampas en el mundo real
Cuando realmente se utiliza el proxy de ipipgo, se recomienda utilizar suLa API obtiene dinámicamente la dirección del proxy. Dame una castaña:
solicitudes de importación
Obtén el proxy de ipipgo (recuerda sustituirlo por tu propia API)
proxy_api = "https://api.ipipgo.com/getproxy?key=你的密钥"
proxy_data = requests.get(proxy_api).json()
proxies = {
'http': f "http://{proxy_data['usuario']}:{proxy_data['pass']}@{proxy_data['servidor']}",
https': f "http://{proxy_data['user']}:{proxy_data['pass']}@{proxy_data['server']}"
}
Prueba si el proxy funciona
test_url = "https://httpbin.org/ip"
resp = requests.get(test_url, proxies=proxies)
print(f "IP actual: {resp.json()['origen']}")
Escribir de esta manera tiene una ventaja: cada petición utiliza una nueva IP, y el efecto antibloqueo es grande. El Proxy Residencial Dinámico de ipipgo es especialmente adecuado para este tipo de escenario, y sus Pools de IPsActualización diaria 20% o másno fácilmente reconocibles por el lugar de destino.
Preguntas frecuentes QA
P: ¿Qué debo hacer si no puedo conectarme siempre a la IP proxy?
R: Primero comprueba tres puntos: 1. el nombre de usuario y la contraseña no tienen caracteres especiales que escapar 2. la cabecera del protocolo no está escrita correctamente (http y https) 3. el fire release o no. Si no funciona, se recomienda contactar con el servicio de atención al cliente de ipipgo para comprobar el estado del proxy.
P: ¿Cómo gestionar el grupo de agentes cuando hay mucha concurrencia?
R: Recomendado para ipipgoAgentes dinámicos empresarialesadmite la conmutación automática de IP y la retención de sesión. Su línea TK puede hacerMás de 100 solicitudes por segundoNo hay abandonos para los veteranos de los reptiles.
| Tipo de envase | Escenarios aplicables | Precio ventajoso |
|---|---|---|
| Residencial dinámico (estándar) | Recogida diaria de datos | 7,67 $/GB |
| Viviendas estáticas | Servicios que requieren IP fija | 35RMB/IP |
Actualizar Consejos de juego
Los conductores mayores lo utilizan.Mecanismo de reintento de falloCambio automático de IP y reintento cuando se agota el tiempo de espera del proxy. Combinado con ipipgo'smodelo de pago por usoque es rentable y estable. El código puede escribirse así:
from retrying import retry
@retry(stop_max_attempt_number=3)
def request_with_retry(url).
proxy = get_new_proxy() obtener nuevo proxy de ipipgo
return requests.get(url, proxies=proxy, timeout=10)
Cuando lo uses, llámalo directamente
datos = request_with_retry('https://target-site.com')
Recuerda instalar la librería retrying (pip install retrying) para que cuando una petición falle se reintente automáticamente 3 veces, cada vez con una nueva IP.
Un último secreto: ipipgo'sAgentes transfronterizos especializadosLa latencia es sólo 1/3 del agente ordinario, hacer la captura de datos en tiempo real es particularmente fragante. Sin embargo, esto a los usuarios de la empresa puede aplicar, hay una necesidad de encontrar directamente su servicio al cliente para abrir la lista blanca.

