
Prácticas con proxy IP procesando cadenas JSON
Recientemente, una gran cantidad de socios de recopilación de datos preguntó, con el proxy IP siempre atascado en el procesamiento de datos JSON este apagado. Hoy vamos a fastidiar cómo utilizar el servicio de proxy de ipipgo, fácil de tratar con una variedad de cadenas JSON de la operación de mal gusto.
En primer lugar, la dirección IP en el JSON para jugar de esta manera
Tomemos un escenario real: el rastreador obtiene datos con este aspecto
{
"ip": "192.168.1.1",
"puerto": "8080",
"expiry": "2024-12-31"
}
En este punto, utilice la API ipipgo para sustituir directamente el campo IP:
importar peticiones
from ipipgo import get_proxy ¡Esta es la cuestión!
proxy = get_proxy() Obtiene automáticamente las últimas IPs del proxy.
datos['ip'] = proxy['ip']
data['port'] = proxy['port']
tenga en cuentaAPI de ipipgo: la API de ipipgo devuelve el formato JSON estándar, por lo que no tendrá que parsearlo usted mismo.
En segundo lugar, no te asustes cuando encuentres un formato extraño
Algunos sitios indicarán la IP y el puerto como"proxy": "1.1.1.1:8888"Te enseñaré un truco:
Generación automática de formatos estándar con el cliente ipipgo
from ipipgo import formato_proxy
mal_formato = "1.1.1.1:8888"
clean_proxy = format_proxy(bad_format) return {'ip':'1.1.1.1','port':'8888'}
En tercer lugar, la IP dinámica debe ser tan cambiado
Recuerde esta combinación de oro cuando tenga que cambiar de agente con frecuencia:
importar random
importar json
def refresh_proxy().
proxies = ipipgo.get_batch(10) obtener 10 IPs a la vez
return random.choice(proxiles) Elige aleatoriamente uno para usarlo
while True: proxy_actual = proxy_actualizado
proxy_actual = actualizar_proxy()
Introduzca el proxy en las cabeceras de la petición JSON
headers = {'X-Proxy': json.dumps(current_proxy)}
En cuarto lugar, evitar la guía de boxes (blanco debe ver)
Lugares habituales de vuelco:
1. El número de puerto se convierte en una cadena ("8080″ en lugar de 8080)
2. Campo IP con espacios adicionales ("192.168.1.1")
3. Falta de uniformidad en el formato de las fechas de caducidad
Utilice esta función de limpieza universal
def limpiar_datos_proxy(json_bruto)::
try.
raw_json['puerto'] = int(raw_json['puerto'].strip())
raw_json['ip'] = raw_json['ip'].strip()
Convertir automáticamente el formato de hora
raw_json['expiry'] = pd.to_datetime(raw_json['expiry']).strftime('%Y-%m-%d')
excepto.
return ipipgo.get_fresh_proxy() Problemas directamente a nuevas IPs
Tiempo de control de calidad
P:¿Qué debo hacer si siempre encuentro errores de análisis JSON?
R: ¡Empieza por lo que te ofrece ipipgo!validar_proxyPruebas previas de la interfaz antes de introducir el código empresarial
P: ¿Y si tengo que gestionar varios grupos de IP al mismo tiempo?
R: Utilice suResidencial dinámico (Enterprise Edition)Paquete, soporte para procesamiento simultáneo multicanal, más de 9 yuanes de tráfico 1G suficiente para ejecutar proyectos pequeños y medianos.
P: ¿Funcionaba bien en la beta, pero se bloquea en línea?
R: Recuerde añadir a la cabecera de la solicitud JSON el campo"X-Proxy-Source": "ipipgo"Posibilidad de activar optimizaciones especiales del lado del servidor.
Cómo elegir el paquete con la mejor relación calidad-precio
| Tipo de empresa | Paquetes recomendados | coste mensual |
|---|---|---|
| prueba personal | Residencial dinámico (estándar) | ≈ $15 |
| Captura empresarial | Residencial dinámico (empresa) | ≈200 |
| Necesidades fijas a largo plazo | Viviendas estáticas | 35RMB/IP |
Un último secreto: enterrar el JSON en"reintento":3la API de ipipgo le dará automáticamente 3 reintentos, ¡lo cual ni siquiera está escrito en la documentación oficial!

