
Manos a la obra con XPath para captar los datos del rey de al lado
El hierro viejo dedicado a los rastreadores debe haber encontrado este escenario: obviamente mirar la estructura de la página web es muy clara, realmente quiere localizar los elementos, pero como en el laberinto alrededor. Especialmente cuando se encuentran los datos de la tabla, lista de productosLos elementos pares se amontonansituación, la técnica de posicionamiento de hermanos de XPath es su hacha de apertura.
Como una castaña, un sitio de comercio electrónico tiene precios ocultos en elclass="precio"en el palmo, pero al lado hay un hechizanteclass="precio-falso". Este es el momento de utilizar elhermano-seguidorEl eje será capaz de precisar el precio real, igual que al coger una sandía en el mercado, hay que saber aplaudir y escuchar el sonido.
//div[@class='producto']/span[@class='title']/hermano-seguidor::span[1]
Las IP proxy mantienen a los rastreadores como perros viejos
Sin embargo, XPath no es suficiente, muchos sitios web son más estrictos que los anti-ladrones para evitar que los rastreadores. Hace dos días, hay un hermano de comparación de precios, 20 solicitudes consecutivas para ser bloqueado IP, ansioso recta tirando del pelo. Este es el momento deProxy dinámico residencial para ipipgoEn el campo, su piscina IP es más grande que Wanda Plaza, cada solicitud al azar cambiar de armadura, el sitio no puede distinguir entre una persona y un rastreador.
La configuración en vivo es superfácil (recuerda sustituir el nombre de usuario y la contraseña por tu propia cuenta):
solicitudes de importación
proxies = {
'http': 'http://username:password@gateway.ipipgo.com:9021',
https: http://username:password@gateway.ipipgo.com:9021
}
resp = requests.get('https://目标网站', proxies=proxies)
Estuche práctico Gold Match
Supongamos que queremos obtener información sobre un espectáculo en un sitio de venta de entradas, y la estructura de la página es la siguiente:
| elemental | propiedad de diagnóstico |
|---|---|
| Nombre del espectáculo | etiqueta h3 + class="event-title" |
| tiempo de ejecución | La primera etiqueta p inmediatamente después del nombre |
| tarifas | El tramo de la segunda etiqueta p |
Con XPath los ejes hermanos se pueden agarrar así:
events = response.xpath('//div[@class="events-list"]/div')
para evento en eventos.
name = evento.xpath('. //h3/text()').get()
time = evento.xpath('. //h3/hermano-siguiente::p[1]/text()').get()
precio = event.xpath('. //p[2]/span/text()').get()
Con ipipgo'spaquete de facturación a la cartaSi configuras un intervalo de solicitud de 5 segundos, podrás ejecutar una noche de datos de forma constante y tendrás menos probabilidades de caer en el pozo 80% que con un proxy gratuito.
Control de calidad de escenas de vuelco comunes
P: ¿Qué debo hacer si el posicionamiento XPath es siempre una lista vacía?
R: Primero compruebe si el elemento tarda en cargarse, utilice la herramienta de desarrollo del navegador para reproducir el posicionamiento. Si el sitio utiliza anti-crawl, recuerde añadir Referer y User-Agent en la cabecera de la petición, el proxy de ipipgo viene con una función de camuflaje de cabecera de petición.
P: ¿Qué debo hacer si la IP proxy deja de conectarse de repente?
R: Añade un mecanismo de reintento en el código, la API de ipipgo soporta la sustitución automática de IPs fallidas. si te desconectas con frecuencia, te recomendamos cambiar a la suya.IP residencial estática de larga duraciónLa estabilidad es comparable a la conexión telefónica de banda ancha.
P: ¿Cómo romper páginas web dinámicas?
R: En el navegador de simulación Selenium o Playwright, recuerde dar a cada instancia del navegador con un proxy diferente. ipipgo soporta la creación de múltiples sesiones proxy al mismo tiempo, una solución perfecta al problema de conflictos de IP en múltiples ventanas.
Una última cosa. Crawlers.tres partes de habilidad, siete partes de agencia. Después de haber utilizado 7 u 8 servicios de proxy, ipipgo realmente tiene algo en términos de capacidad de respuesta y mecanismo de reintento de fallo, especialmente suAPI de detección de supervivencia IPPuede descartar de antemano las IP tontas, evitando que el programa se atasque a mitad de la ejecución.

