Ir al contenido principal

Tratar la paginación (sin botón “Siguiente”)

Actualizado hace más de 7 meses

Si está pensando en raspar un sitio web, es probable que desees navegar por las diferentes páginas del sitio web y extraer datos de cada una de ellas. Sin embargo, el primer paso es identificar el tipo de paginación con el que estás tratando y trabajar desde allí. Algunos ejemplos son:

  • Paginar usando el botón “Siguiente”

  • Paginar sin el botón “Siguiente”

  • Paginar con desplazamiento infinitivo

  • Paginar usando el botón “Cargar más”

En este tutorial, nos centraremos en cómo crear una acción de paginación cuando no hay un botón de página siguiente y Auto-Detectar no reconoce bien el XPath. Más específicamente, uno que requiera hacer clic en los enlaces numerados cuando desee pasar la página, como los que se muestran a continuación.

mceclip0.png
mceclip1.png

Ahora, exploremos las diversas formas en que puedes crear una acción de paginación sin un botón de página siguiente en Octoparse.


1. Crear paginación y cambiar Xpath de paginar

La lógica subyacente para resolver el problema es que necesitamos escribir una XPath que pueda localizar siempre el número de la siguiente página.

Dos puntos importantes:

1: Escribir la XPath del elemento de la página que te lleva a la siguiente página (por ejemplo, si estás en la página 1, entonces quisieras hacer clic en la página 2; si estás en la página 2, entonces quisieras hacer clic en la página 3, y así sucesivamente).

2: Revisar la XPath de la paginación en el flujo de trabajo en Octoparse.

Nota:Consulta aquí para conocer XPath

Tomamos este enlace como ejemplo para seguir adelante:

Paso 1:Ir al sitio web,F12 o Inspeccionar

Paso 2:En tu navegador, haz clic para iniciar XPath Helper.

mceclip0_3.png

Paso 3: Busca los números de página en la página web, haz clic con el botón derecho en el enlace del número de página “1” y selecciona la opción Inspeccionar o F12.

mceclip3.png

Paso 4: Encuentra XPath de página 1

xpath.png

Paso 5 :Haz clic con el botón derecho en el código resaltado, selecciona “Copiar” y luego “Copiar XPath”. Acabas de copiar el XPath del enlace de número de página “1”.

Este es el XPath que has copiado:

/html/body/div[3]/div[2]/div/div/div/div/nav/a[1]/span

Paso 6: Al mirar el código fuente, puedes encontrar que la página 2 se encuentra una línea debajo del elemento de la página 1.

Usando la sintaxis XPath "“following-sibling"”que rastrea para el siguiente nodo siguiente en la línea, puedes modificar el XPath copiado para el elemento page-1 a uno que rastrea la página que lo sigue (página-2 en este caso).

Entonces, el XPath correcto que siempre debe ir a ubicar la página siguiente después de la página actual es:

/html/body/div[3]/div[2]/div/div/div/div/nav/span[1]/following-sibling::*[1]

Nota:

following-sibling::*[1]"

al final del XPath anterior, ahora busca el primer elemento href (a [1]) después del elemento de la primera página. * significa cualquier

* Nota: Al agregar "“following-sibling::*[1]"”al final del XPath anterior, ahora busca el primer elemento href (a [1]) después del elemento de la primera página. * significa cualquier

Ingresa el XPath correcto en la sección de Consulta del XPath Helper, puedes ver que la página "“4”está ubicada correctamente usando XPath.

Paso 7:Ingresa en Octoparse paso de Paginación

Nota:

Aquí hay otro ejemplo que se necesita agregar parent::*

Tarea:

//tr[14]/td/table/tbody/tr/td/span/parent::*/following-sibling::*[1]/a


2. Generar por lotes para crear URLs de todas las páginas

A veces ningún XPath puede localizar o paginar establemente, tras observar, cada URL de página se forma en orden, solo se necesita cambiar el número de la URL.

Ejemplo:

...

Ppuedes generar por lotes todas las URL de la página y raspar las páginas necesarias. Una vez que hayas generado los enlaces, Octoparse continuará raspando todas las páginas automáticamente.

¿Ha quedado contestada tu pregunta?