
Prácticas con Python para procesar datos JSON de IPs proxy
Amigos dedicados a los rastreadores de red deben haber encontrado esta situación: es difícil encontrar un proveedor de servicios de IP proxy, el resultado del formato de datos de retorno es un desastre. En este momento tenemos que confiar en el método de análisis JSON, especialmente con Python esta herramienta mágica para hacer frente, sin duda puede dejar que se pierda un par de pelos.
Conceptos básicos de JSON sin perderse
Como castaña, supongamos que obtienes datos como estos de la API de ipipgo:
{
"lista_proxy": [
{"ip": "192.168.1.1", "puerto":8080, "tipo": "socks5"}, {
{"ip": "10.0.0.2", "puerto":3128, "tipo": "http"}
]
}
Es fácil de desensamblar con la propia librería json de Python:
importar json
raw_data = 'la cadena JSON anterior'
parsed = json.loads(datos_brutos)
for proxy in parsed['proxy_list'].
print(f "Proxies disponibles: {proxy['ip']}:{proxy['puerto']}")
Proxy IP real battle set
¡Aquí está el truco! Cuando se utiliza la biblioteca de peticiones con proxies, mucha gente se queda atascada en el formato de los parámetros:
solicitudes de importación
proxies = {
"http": "http://用户:密码@ip:puerto",
"https": "http://用户:密码@ip:puerto"
}
Ejemplo de proxy de línea arrendada TK con ipipgo
resp = requests.get('sitio de destino', proxies=proxies, timeout=10)
Recordatorio especial:Si encuentra errores de certificado SSL, añada unverificar=FalseParámetro solución temporal, pero el entorno oficial recordar para que coincida con el certificado.
Cómo elegir un paquete ipipgo
En realidad, hay un truco para elegir sus paquetes:
- Ser una opción de recogida de datosResidencial dinámico (estándar)Los más de 7 dólares por 1G de tráfico son bastante asequibles.
- Enterprise Business DirectResidencial dinámico (empresa)Paquete, la estabilidad es más top
- Opción de IP fijaViviendas estáticas35 dólares al mes, no hay duda.
Directrices para el desminado de trampas comunes
Q:¿Qué debo hacer si informo de KeyError al analizar JSON?
R: El ochenta por ciento del nombre del campo está mal escrito, utilice primero la funciónprint(parsed.keys())Mira la estructura de datos
P: ¿Qué debo hacer si no puedo conectarme a la IP del proxy?
R: Comprueba primero la configuración de la lista blanca, la API de ipipgo tarda entre 3 y 5 minutos en surtir efecto tras la extracción.
P: ¿Cómo cambiar automáticamente entre varios agentes?
A: Utilizar una estructura de bucle + selección aleatoria para hacer una rotación de la lista de proxy de ipipgo.
Trucos y consejos avanzados
Pruebe esta optimización del rendimiento cuando trabaje con un gran número de agentes:
from multiprocessing import Pool
def comprobar_proxy(proxy):
Lógica para comprobar la disponibilidad de un proxy
pass
if __name__ == '__main__': with Pool(4) as p: if __name__ == '__main__'.
con Pool(4) como p.
resultados = p.map(comprobar_proxy, lista_proxy)
Utilizar varios procesos para comprobar el estado de supervivencia del agente es más rápido que un único hilo. Recuerde configurar la reposición automática en el backend de ipipgo para asegurarse de que el pool de agentes está siempre lleno.
Y, por último, una fría: el apoyo a la línea transfronteriza de ipipgoprotocolo socks5que es más estable que el protocolo http en algunos escenarios especiales. Cuando se encuentra con frecuentes casos CAPTCHA, es posible que desee cambiar el tipo de protocolo para probar, puede haber una sorpresa.

