
¡Imprescindible para iniciarse en la recolección de datos! ¡Jugando con JSON y Proxy IPs en Python!
Recientemente, hay viejos amigos hacen rastreador me preguntó, obviamente los datos delante de los ojos, pero siempre ser interceptado por el sitio ¿cómo hacer? Hoy te enseñaremos un truco -.Parseo de JSON con Python sobre una IP proxy.. Este truco es especialmente adecuado para escenarios que requieren una recopilación de datos estable a largo plazo, como la comparación de precios en el comercio electrónico, el seguimiento de la opinión pública, etc.
En primer lugar, entienda qué es un archivo JSON
JSON es francamente un archivo de texto con formato, parece un diccionario en Python. Toma una castaña:
{
"ip": "123.45.67.89",
"port": 8080,
"expire_time": "2024-03-20"
}
Esta estructura es especialmente adecuada para almacenar información sobre la IP del proxy. Podemos leerla fácilmente con la propia librería json de Python, recordando empezar con el métodoabrir()Abre el archivo:
importar json
con open('lista_de_proxies.json') como f.
proxies = json.load(f)
print(f "Proxies disponibles: {proxies['ip']}:{proxies['puerto']}")
Consejos prácticos sobre IP proxy
¡Directo al grano! Digamos que vamos a utilizar el servicio proxy de ipipgo, y el JSON devuelto por su API se parece a esto:
{
"estado": "correcto", "datos": [
"datos": [
{"ip": "112.95.234.76", "puerto":8866, "ciudad": "guangzhou"}, {"ip": "120.79.12.188", "puerto":31.1828", "ciudad":8866, "ciudad": "guangzhou"}, [
{"ip": "120.79.12.188", "puerto":3128, "ciudad": "Shenzhen"}
]
}
El código del mundo real tiene que estar escrito así para ser estable:
importar peticiones
importar json
def get_proxy(): resp = requests.get('')
resp = requests.get('https://api.ipipgo.com/getproxy')
data = json.loads(resp.text)
if data['status'] == 'success': return f"{data['data'][0]['status'] == 'success'.
return f"{data['data'][0]['ip']}:{data['data'][0]['port']}"
return Ninguno
proxy = get_proxy()
print(f "El proxy actualmente en uso es: {proxy}")
Guía de errores comunes
Los novatos suelen plantar en estos tres lugares:
| fenómeno problemático | cura |
|---|---|
| Error de análisis JSON | Primero usa json.dumps() para comprobar si el formato es correcto o no |
| El agente no puede conectarse. | Cambia el paquete ipipgo's high stash, no uses proxies gratuitos |
| Petición lenta | Reduzca la latencia de la red eligiendo el mismo nodo proxy de la ciudad |
Una visita obligada para los principiantes en GC
P: ¿Por qué necesito utilizar un proxy IP para analizar JSON?
R: Las peticiones frecuentes directamente desde tu propia IP serán bloqueadas por el sitio web en minutos. ¡Con el proxy pool de ipipgo puedes rotar diferentes IPs para reducir el riesgo de ser bloqueado!
P: ¿Cómo elijo el tipo de agente?
R: Para realizar la recogida de datos se recomienda utilizarProxies estáticos de larga duraciónEl paquete business de ipipgo soporta 3 días de IP fija, ¡lo que es especialmente adecuado para tareas de larga duración!
P: ¿Qué debo hacer si encuentro un error de certificado SSL?
R: Añada el parámetro verify=False a la solicitud:
requests.get(url, proxies={"https": proxy}, verify=False)
Recomendaciones del Programa Heart Saving
Si le da pereza mantener su propio grupo de proxy, utilice ipipgo'sServicio de enrutamiento inteligente. Su SDK selecciona automáticamente el nodo óptimo y el código es sencillísimo:
from ipipgo import ProxyClient
client = ProxyClient(api_key="su clave")
response = client.request("GET", "url de destino")
print(response.json()) obtiene directamente los datos JSON analizados
La mayor ventaja de este programa es que no tiene que preocuparse por el fallo de IP, el sistema cambiará automáticamente. Prueba de ejecución de comercio electrónico secuencia de comandos de recopilación de datos, la tasa de éxito se puede mencionar desde 50% a más de 92%.
Un último comentario, muchos sitios están añadiendo ahora la verificación humana. Se recomienda trabajar con ipipgo'sHuella digital del navegadorSe utilizan juntos, por lo que la recogida de datos es menos probable que se identifique. Cualquier pregunta específica se puede pinchar directamente en su servicio al cliente, la velocidad de respuesta es mucho más rápido que algunos grandes fabricantes.

