La extracción de datos de varias páginas mediante la paginación es muy común, ya que la mayoría de las veces necesitarás más de una página de datos para tu proyecto.
Si has tenido este tipo de problemas con Octoparse, sigue raspando la última página y parece que no puede detenerse, es probable que Octoparse aún pueda encontrar y hacer clic en el botón "Siguiente" incluso cuando llega a la última página. Generalmente nos referimos a esto como el problema del "bucle sin fin".
Hay dos formas de solucionarlo. Puede configurar condiciones para forzar el final del ciclo de paginación o modificar el XPath manualmente para que Octoparse ya no detecte el botón "Siguiente" cuando está en la última página.
1. Configurar la condición de finalización del bucle - "Terminar el bucle cuando"
La opción "Terminar el bucle cuando" te permite forzar el final del bucle de paginación después de repetirlo una determinada cantidad de veces, por ejemplo, si deseas extraer las primeras 50 páginas de datos, puedes configurar 49 como el número de repetición, luego Octoparse hará clic en el botón "Siguiente" 49 veces y luego saldrá del bucle de paginación cuando llegue a la página 50.
Esta es una manera fácil y eficaz de resolver el problema si sabes la cantidad exacta de páginas de las que te gustaría obtener datos. Sigue los pasos a continuación para configurar las condiciones del bucle final:
1) Haz clic en el bucle de paginación y abre la configuración del paso
2) Marca la casilla e ingresa un número para el número de repeticiones
3) Haz clic en "Aceptar" para guardar la nueva configuración
2. Modicar XPath
Si el problema no se puede resolver configurando una condición de finalización de bucle, es posible que debas modificar el XPath del bucle de paginación. Octoparse usa XPath para ubicar cualquier elemento en la página, incluido el botón "Siguiente". Normalmente, Octoparse puede generar el XPath de forma automática y precisa, sin embargo, es posible que debas revisar el XPath manualmente de vez en cuando. Por ejemplo, en el caso de un bucle sin fin, deberás escribir un XPath que pueda ubicar el botón "Siguiente" con precisión en todas las páginas excepto en la última página.
Tips!
|
Usemos un ejemplo para mostrarte cómo escribir un XPath que funcione para este propósito.
Como puedes ver en las dos capturas de pantalla a continuación, el botón "Siguiente" se encuentra en un XPath generado automáticamente por el complemento Firepath, tanto en la primera página como en la última página.
En la primera página:
En la última página:
Ahora, observa cómo el atributo "clase" debajo de la etiqueta "a" es diferente en la primera página que en la última página. Uno es "gspr next", mientras que el otro es "gspr next-d".
Luego haremos uso de esta observación y escribiremos un nuevo XPath para ubicar el botón "Siguiente" solo cuando NO esté en la última página. El nuevo XPath es //a[@class='gspr next'].
Simplemente ingresa el nuevo XPath en Firepath para verificar si puede ubicar el botón "Siguiente" tanto en la primera página como en la última página.
En la primera página:
En la última página:
¡Estupendo! No tenemos nodos coincidentes en la última página y esto es exactamente lo que queremos: un XPath que seleccione con éxito el botón "Siguiente" en la primera página pero no en la última página. Por supuesto, siempre puede ser más preciso si compruebas si se puede seleccionar "Siguiente" en la página 2, en la página 3, etc.
Una vez que tengas listo el nuevo XPath, sigue los pasos a continuación para aplicar el nuevo XPath al bucle de paginación:
1) Ve a la configuración del elemento de bucle
2) Reemplaza el XPath original con el XPath revisado
3) Haz clic en "Aceptar" para guardar la nueva configuración.
Si deseas obtener más información sobre la modificación de XPath, consulta nuestro tutorial de XPath aquí .
En resumen, el problema del bucle sin fin no tiene por qué ser abrumador. Dependiendo de tus requisitos de raspado, puedes configurar condiciones para finalizar el bucle o revisar XPath para solucionarlo.
Si tienes algún problema en configurar tu tarea de raspado, no dudes en escribir a nuestro equipo de Soporte. Nos pondremos en contacto contigo dentro de 24 horas.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.