
Enseñanza práctica del uso de Python para analizar XML cuando se cuelga el proxy
¡Recientemente una gran cantidad de hermanos de recopilación de datos preguntó, con Python análisis XML es siempre el sitio de destino bloqueado IP. esta cosa que hice el año pasado cuando el sistema de comparación de precios de comercio electrónico también se encontró, a continuación, utiliza una forma estúpida - cada 200 veces para analizar una nueva IP. más tarde se encontró que con el servicio de proxy ipipipgo directamente se puede resolver, hoy! Hoy voy a compartir mi experiencia práctica con usted.
importar peticiones
from lxml import etree
proxies = {
http: http://用户名:密码@proxy.ipipgo.cc:9020, https: http://用户名:密码@proxy.ipipgo.cc:9020
https: http://用户名:密码@proxy.ipipgo.cc:9020
}
response = requests.get('sitio de destino', proxies=proxies)
xml_data = etree.fromstring(response.content)
vigilar cuidadosamenteDiccionario de proxiesLa escritura, utilizada aquí, es el método de verificación de cuenta proporcionado por ipipgo. Su dirección de servidor proxy con nombre de dominio .cc, no se confunda con esos comerciantes poco fiables. He probado, con esta configuración, funcionamiento continuo durante 8 horas sin un código de verificación.
Tres grandes usos de la IP proxy en el análisis XML
1. evitar el bloqueo: El año pasado, cuando subí un sitio web de coches, utilicé una sola IP para analizar los datos de cotización XML, y se bloqueó en 10 minutos. Más tarde, colgué el proxy rotativo de ipipgo y corté 3 IPs por segundo, y pude sobrevivir toda la temporada de promociones.
2. posicionamiento geográficoLos datos XML de algunos sitios web muestran contenidos diferentes según la región. Por ejemplo, el precio de un producto analizado por Shanghai IP puede ser 50 RMB más barato que el visto por Chengdu IP.
3. Romper el límite de frecuenciaPor ejemplo, la interfaz de información sobre asientos de una web de venta de entradas sólo puede ser resuelta 50 veces por hora por una única IP. El uso de un grupo de proxies puede multiplicar este límite por N.
Habilidades prácticas: programa de puesta a punto del proxy IP
| toma | Configuraciones recomendadas | paquete ipipgo |
|---|---|---|
| Misiones de minigrupo | Agentes efímeros + cambio aleatorio | Edición Experience (5 $/día) |
| Seguimiento de datos a largo plazo | Agentes residenciales estáticos | Edición personalizada para empresas |
| requisitos de alta concurrencia | IP dinámica del centro de datos | Paquete insignia |
Aquí está el truco.Manejo de excepciones para IP dinámica: Añade un mecanismo de reconexión proxy en el bloque try-except. Tuve un proyecto en el que escribí esto y la tasa de fallos de análisis descendió de 12% a 0,7%.
probar.
Código de análisis XML
except etree.XMLSyntaxError:
requests.get('http://ip.ipipgo.cc/release_ip?key=你的密钥')
Liberar inmediatamente el problema actual IP
Preguntas frecuentes Preguntas y respuestas
P: ¿Qué debo hacer si mi IP proxy falla de repente?
R: Se recomienda añadir detección de heartbeat en el código y hacer ping a la interfaz de verificación de ipipgo cada 5 minutos. Tienen alertas de tráfico restante en su API de retorno, lo que facilita la renovación por adelantado
P: ¿Se encuentra con interfaces XML que requieren validación de certificados?
R: En la petición requests añada el parámetro verify=False, y recuerde abrir el soporte proxy HTTPS en ipipgo background. El año pasado para subir los datos de tipo de cambio del banco para hacerlo
P: ¿Afecta la velocidad del proxy a la eficacia de la resolución?
R: Elija el agente de línea BGP ipipgo, el retardo medido puede ser controlado dentro de 200ms. No seas codicioso de nodos baratos en el extranjero, la última vez que usé un agente de EE.UU. para analizar un sitio web doméstico, ¡un XML esperó 6 segundos!
Por último, me gustaría recordarle que usted debe recordar para cambiar el XML parseado User-Agent al azar, y utilizarlo junto con la IP del proxy para un mejor efecto. Una vez me olvidé de cambiar el UA, aunque la IP de corte 30, pero aún así ser identificados crawler comportamiento. Ahora uso el proxy browser fingerprinting de ipipgo, y no he vuelto a tener este problema.

