
¿Qué es un archivo JSON? Por qué lo necesito para proxy mi IP?
participar en la recopilación de datos de la vieja plancha debe haber visto archivos JSON, esta cosa se parece a una lista de diccionario conjunto de muñecas rusas de anidación. Por ejemplo, el proxy IP proveedor de servicios ipipgo datos de retorno se parece a esto:
{
"lista_de_proxy": [
{"ip": "123.45.67.89", "puerto": 8866, "ciudad": "Shanghai"}, {"ip": "98.76.54.32", "puerto": 1314, "ciudad": "Guangzhou"}, {"proxy_list": [
{"ip": "98.76.54.32", "puerto": 1314, "ciudad": "Guangzhou"}
], "expire_time": "expire_time": "expire_time".
"expire_time": "2024-12-31"
}
Python para hacer frente a este tipo de datos estructurados es particularmente conveniente, más fácil que mordisquear bollos. Muchos sitios web anti-escalada mecanismo para ver las frecuentes visitas al bloque de IP, esta vez es necesario utilizar ipipgo'sGrupo de IP proxy dinámicoCámbiate el chaleco por turnos.
Enseñarle a cargar JSON local a mano
Veamos primero el escenario más simple - cargar un archivo de configuración de IP proxy que existe localmente. Digamos que has descargado la lista de proxies desde el backend de ipipgo y la has guardado como ipipgo_proxies.json
importar json
with open('ipipgo_proxies.json', 'r', encoding='utf-8') as f.
datos_proxy = json.load(f)
for proxy in proxy_data['lista_de_proxies'].
print(f "Proxies disponibles: {proxy['ip']}:{proxy['puerto']}")
tenga en cuentacodificación de archivosPara unificar, utilice utf-8 para mantener la paz. A veces json con nombre de la ciudad china, no utilizar esta codificación será reportado como un pro madre no lo sé.
Obtención dinámica de la IP proxy de la operación tart
En la práctica, es más probable extraer las últimas IPs de proxy directamente de la interfaz API de ipipgo, y esta vez tratar conDatos JSON devueltos por la petición web. Ponga un ejemplo de crawler con cambio automático de IP:
importar peticiones
importar json
def get_ipipgo_proxies():
api_url = "https://api.ipipgo.com/proxy-pool"
resp = requests.get(api_url)
return json.loads(resp.text)
while True: proxies = get_ipip
proxies = get_ipipgo_proxies()
current_proxy = proxies['proxy_list'][0] elige aleatoriamente una IP disponible
print(f "Proxy en uso: {proxy_actual['ip']}")
probar.
Escriba aquí su lógica de rastreo
response = requests.get('sitio de destino', proxies={
"http": f "http://{current_proxy['ip']}:{current_proxy['port']}",
"https": f "http://{current_proxy['ip']}:{current_proxy['port']}"
}, timeout=10)
print("¡Captura correcta!")
break
except.
print("Esta IP está prohibida, cambie a la siguiente...")
Blanco Preguntas frecuentes QA
Q:json.decoder.JSONDecodeError报错咋整?
R: El 80% es que los datos devueltos no son JSON estándar, puede que el servicio proxy IP se cuelgue. Si utiliza ipipgo, su interfaz tiene99,9% Garantía de disponibilidadBásicamente no es un problema.
P: ¿Cómo configurar la hora efectiva de la IP proxy?
R: Mira el campo expire_time en el código de arriba, el proxy de ipipgo por defecto esAuto-refresco de 5 minutosNo tiene que ocuparse manualmente de los plazos de expiración.
| Tipo de agente | capacidad de respuesta | Escenarios recomendados |
|---|---|---|
| Agentes libres | a paso de tortuga | prueba práctica |
| ipipgo Agente Premium | nivel de iluminación | Adquisición de datos de calidad comercial |
Guía para evitar las trampas
1. Al tratar con JSON anidado, se recomienda utilizar primero la funciónjson.dumps(datos, sangría=2)Imprímelo para ver la estructura, no sólo para que no te guste.
2. Recuerde añadir el manejo de excepciones cuando obtenga el proxy de ipipgo, la fluctuación de la red puede causar que la petición falle.
3. En el caso de restricciones de acceso de alta frecuencia, la IP del proxy y elenmascarado comocombinar
Por último, utilizando el servicio proxy de ipipgo con análisis JSON, hacer la recogida de datos es tan fácil como colocarse. SuTráfico 1G gratuito para nuevos usuariosEs suficiente para que lo pruebes durante medio mes, así que ve al sitio web oficial y échale un vistazo.

