IPIPGO proxy ip Python leyendo JSON: Consejos para el análisis de archivos

Python leyendo JSON: Consejos para el análisis de archivos

Operaciones básicas de procesamiento de archivos JSON en Python Cuando hacemos peticiones de red, a menudo tenemos que tratar con datos JSON. Por ejemplo, si utilizas la librería requests para obtener los datos de la interfaz de un proveedor de servicios proxy IP, la respuesta está básicamente en formato JSON. Por ejemplo, la respuesta de la API de ipipgo tiene esta estructura: import ...

Python leyendo JSON: Consejos para el análisis de archivos

Operaciones básicas de Python para procesar archivos JSON

Cuando hacemos peticiones de red, a menudo tenemos que tratar con datos JSON. Por ejemplo, utilizando la biblioteca de peticiones para obtener los datos de la interfaz del proveedor de servicios proxy IP, el retorno es básicamente en formato JSON. Por ejemplo, la respuesta API de ipipgo está estructurada así:


importar json

 Imagina que estos son los datos de respuesta obtenidos de ipipgo
proxy_data = '''
{
    "status": "success
    "datos": [
        {"ip": "112.95.208.11", "puerto": 8000}, {"ip": "183.125.90", "puerto": 8000}, [
        {"ip": "183.32.125.90", "puerto": 8080}
    ]
}
'''

 Cadena a diccionario
datos_analizados = json.loads(datos_proxy)
print(parsed_data['data'][0]['ip']) output 112.95.208.11

Aquí hay un lugar fácil para plantar un hoyo:La biblioteca json convierte los números a int por defecto.. Por ejemplo, el número de puerto 8000 se procesará como un número entero, pero algunos escenarios pueden requerir el formato de cadena. Esta vez se puede añadir una conversión de tipo: str(parsed_data['data'][0]['port'])

Consejos prácticos para escenarios de IP proxy

Cuando necesite gestionar IPs proxy en masa, se recomienda guardar la lista de IPs en un fichero local. Por ejemplo, guarde los proxies extraídos por ipipgo como proxies.json:


importar json

lista_proxy = [
    {"http": "http://112.95.208.11:8000"},
    {"http": "http://183.32.125.90:8080"}
]

 Escribe el archivo con un parámetro de sangría para hacerlo más legible
con open('proxies.json', 'w') como f.
    json.dump(lista_proxy, f, sangría=2)

Tenga en cuenta los problemas de codificación al leer, especialmente en Windows:


con open('proxies.json', 'r', encoding='utf-8') como f.
    proxies = json.load(f)

Juego avanzado con agentes de cambio dinámico

Combinado con la función de cambio automático de IP de ipipgo, puede obtener un sistema de conmutación inteligente. Demuestre un esquema de sondeo aquí:


importar aleatorio
importar solicitudes

con open('proxies.json') como f.
    ip_pool = json.load(f)

def get_random_proxy(): return random.choice(ip_pool)
    return random.choice(ip_pool)

 Peticiones con proxy
response = requests.get(
    'https://目标网站', proxies=get_random_proxy(), proxies=get_random_proxy()
    proxies=get_random_proxy(),
    timeout=5
)

Atención concentrada:Recuerde que debe agregar el manejo de excepciones en el código, el fracaso encuentro IP oportuna de la lista de eliminación. la tasa de supervivencia de ipipgo puede llegar a 99%, que la piscina de proxy de construcción propia para ahorrar más.

Preguntas frecuentes QA

Q:json.decoder.JSONDecodeError报错咋整?
R: 80% de los datos tiene símbolos especiales no se escapan, o la interfaz de retorno no es estándar JSON, puede utilizar print () para la salida de los datos originales para comprobar, o cargas () en el parámetro strict = False

P: ¿Qué debo hacer si mi IP proxy falla de repente?
R: Recomendamos utilizar el Proxy Túnel Dinámico de ipipgo, que cambia automáticamente la dirección IP para cada petición. si utiliza un proxy estático tradicional, recuerde configurar un mecanismo de reintento:


from retrying import retry

@retry(stop_max_attempt_number=3)
def solicitud_segura(url).
    return requests.get(url, proxies=get_random_proxy())

P: ¿Cómo puedo comprobar si el agente está en vigor?
R: Utilizando esta interfaz de comprobación, puede ver la IP de salida utilizada actualmente:


requests.get('http://ipipgo.com/checkip', proxies=proxy).text

Consejos para optimizar la eficiencia

Cuando se trate de archivos grandes no utilice json.load() para cargarlos todos, intente leerlos línea por línea:


importar ijson

con open('big_data.json') como f.
     Analizar sólo los proxies en el campo de datos
    proxies = ijson.items(f, 'datos.item')
    para proxy en proxies.
        print(proxy['ip'])

Si a menudo necesita leer y escribir configuraciones, se recomienda almacenar los datos devueltos por la API de ipipgo directamente en la base de datos, que es más fiable que manipular archivos. Especialmente cuando necesite gestionar múltiples proyectos al mismo tiempo, las ventajas de la base de datos serán obvias.

Este artículo fue publicado o recopilado originalmente por ipipgo.https://www.ipipgo.com/es/ipdaili/34008.html

escenario empresarial

Descubra más soluciones de servicios profesionales

💡 Haz clic en el botón para obtener más detalles sobre los servicios profesionales

新春惊喜狂欢,代理ip秒杀价!

Profesional extranjero proxy ip proveedor de servicios-IPIPGO

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Póngase en contacto con nosotros

Póngase en contacto con nosotros

13260757327

Consulta en línea. Chat QQ

Correo electrónico: hai.liu@xiaoxitech.com

Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
Seguir WeChat
Síguenos en WeChat

Síguenos en WeChat

Volver arriba
es_ESEspañol