El contenido paginado está en todas partes. Tome su sitio de comercio electrónico favorito, por ejemplo, no todos los productos están en la misma página, es más probable que se distribuyan en varias páginas, tengamoscfunciones de paginación. Entonces, si tuviera que raspar los datos del producto del sitio, necesitaría configurar su tarea con paginación para incluir todos los productos enumerados en las diferentes páginas.
Este tutorial introduce 2 formas comunes de lidiar con la paginación:
1) Extraiga varias páginas con el botón "Siguiente"
2) Extraiga datos de varias páginas sin el botón "Siguiente" (enlaces de número de página)
1) Extraiga varias páginas con el botón "Siguiente"
(Ejemplo de URL: https://www.yelp.com/search?cflt=hotels&find_loc=San+Francisco%2C+CA )
Si la página de lista / página de resultados de búsqueda no se exsisten, cuando se carga la página en el navegador incorporado, busque y haga clic en el botón "Siguiente"
Desde "Consejos de acción", seleccione "Loop haga clic en la página siguiente"
Al modo de flujo de trabajo alternando el icono en la parte superior derecha y observe que se genera automáticamente un paso "Hacer clic para paginar" y se agrega al flujo de trabajo.
(Para finalizar la configuración de la tarea, aprenda a capturar elementos de la lista and a capturar datos de cada página de elementos haciento clic en una lista .)
¡Consejos! En caso de que el contenido paginado se cargue dinámicamente a través de AJAX, configure un tiempo de espera de AJAX de 2 a 4 segundos para el paso "Hacer clic para paginar". No configure el tiempo de espera de AJAX si el elemento no utiliza la técnica AJAX. |
2)Extraiga datos de varias páginas cuando no haya un botón "Siguiente" (solo enlaces de números de página)
A veces, el botón "Siguiente" no está disponible, pero solo el número de página enlaza así:
En este caso, tendríamos que modificar la XPath de la acción "Hacer clic para paginar" del flujo de trabajo. Primero agregaremos un bucle de paginación con el número de página "1", aunque el bucle no funcionará correctamente sin más ajustes.
- Haga clic en el número de página "1"
De los "Consejos de acción", seleccione "Bucle, haga clic en el enlace seleccionado" para crear una paginación "Elemento de bucle". (Obtenga más información sobre el uso de XPath en Octoparsemore )
(URL de ejemplo: https://www.meetup.com/en-AU/The-Entrepreneur-Club-Melbourne/members/?_cookie-check=jgrO7x5nYzelIGAh)
¡Consejos! Ya que hemos seleccionado el número de página "1" para recorrerlo, el ciclo de paginación generado automáticamente no funcionará correctamente. Con la configuración actual, Octoparse simplemente seguirá haciendo clic en "1" mientras intenta paginar a la página siguiente, lo que lleva a la extracción continua de datos duplicados. |
Ahora necesitamos modificar el XPath de la acción "Hacer clic para paginar", que es la parte más importante de tratar con el tipo de paginación de número de página.
La sintaxis XPath que se usa con más frecuencia aquí es "following-sibling", que selecciona todos los “siblings” después del nodo actual.
Por ejemplo, cuando estamos en la página 1, nuestro objetivo es hacer clic en el número de página "2" para llevarnos a la página 2, luego a la página 3, y así sucesivamente
1) Para hacer esto, escriba el XPath para ubicar primero el elemento seleccionado de página
Inspeccione el código fuente y ubique el código para la página actual seleccionada (esto a menudo se puede hacer haciendo clic derecho en el número de página "1" y luego seleccione "Inspeccionar código fuente" o un comando similar). En el siguiente ejemplo, el código para el nodo de la página 1 es: <li class = "nav-pageitem selected">.
Por lo tanto, la XPath del elemento seleccionado de página sería:
.//*[@class="nav-pageitem selected"]
2) Select the 2nd-page node with XPath Syntax, "following-sibling"
Como la página 2 está dentro de la primera etiqueta "li" después del nodo "li" actual, la XPath correcta es:
.//*[@class="nav-pageitem selected"]/following-sibling::li[1]
3) Para hacer clic en los enlaces, necesitaríamos ubicar la etiqueta "a", que significa para vincular al ancla de la segunda página.
Now we have the complete XPath:
.//*[@class="nav-pageitem selected"]/following-sibling::li[1]/a
4) Reemplace el XPath generado automáticamente para el bucle de paginación con el nuevo XPath
- Haga clic en el bucle de paginación y consulte la configuración en el lado derecho, ingrese el nuevo XPath en el cuadro de texto "Elemento único"
5) Verifique la XPath para asegurarse de que funciona para otras páginas
- Haga clic en el bucle de paginación.
- Haga clic en la acción "Hacer clic para paginar"
- Observe si la página web ha paginado a la página siguiente con éxito
Repita el paso anterior para más páginas.
¡Consejos! Si bien XPath se usa para localizar cualquier elemento en particular en una página web, se basa en el código fuente de la página. Por lo tanto, el XPath proporcionado en este ejemplo no se aplicará a ningún otro sitio web, pero siempre puede aplicar el mismo método para escribir el XPath que funciona para su sitio web objetivo. |
Artículos relacionados:
Cargar con desplazamiento infinito/Cargar más
Lección 6: Paginación - captura datos de varias páginas
Haga clic en una lista y capture datos de cada página de elementos
Obtención de datos - capture una lista de elementosting data
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.