¿Es un sitio web de Selenium una página web dinámica?
Rastreo web dinámico (resolviendo selenio de dirección real)
Debido a la suspensión del servicio de comentarios de celebridades de Internet, ahora se actualiza aquí un cuarto capítulo recién escrito. Consulte este artículo:
Las páginas capturadas anteriormente son todas páginas estáticas, por lo que el contenido que se muestra en el navegador es código fuente HTML. Sin embargo, debido a que los sitios web convencionales utilizan JavaScript para mostrar contenido web y, a diferencia de las páginas web estáticas, gran parte del contenido no aparece en el código fuente HTML cuando se utiliza JavaScript, es posible que las técnicas que eliminan páginas web estáticas no funcionen correctamente. Por lo tanto, necesitamos utilizar dos técnicas para el web scraping dinámico: analizar la URL real a través del elemento de inspección del navegador y usar selenio para emular el navegador.
Este capítulo presenta primero ejemplos de páginas web dinámicas para que los lectores puedan comprender qué es el rastreo dinámico y luego utiliza las dos tecnologías de rastreo web dinámico anteriores para obtener datos en páginas web dinámicas.
4 Ejemplo de rastreo dinámico
Antes de comenzar a rastrear páginas web dinámicas, también debemos comprender una tecnología de actualización asincrónica: AJAX (Javascript y XML asincrónicos). Su valor es que las páginas web se pueden actualizar de forma asincrónica intercambiando pequeñas cantidades de datos con el servidor en segundo plano. Esto significa que actualizar parte de una página web no requiere recargar toda la página. Por un lado, puede reducir la descarga de contenido duplicado de páginas web y, por otro lado, también puede ahorrar tráfico, por lo que AJAX se utiliza ampliamente.
En comparación con las páginas web que utilizan AJAX, las páginas web tradicionales deben recargar toda la página web cuando es necesario actualizar el contenido. Por lo tanto, AJAX hace que las aplicaciones de Internet sean más pequeñas, más rápidas y más fáciles de usar. Sin embargo, el proceso de rastreo de páginas web AJAX es más engorroso.
Primero, veamos un ejemplo de una página web dinámica. Abra el artículo Hello World en el blog del autor. La dirección del artículo es: /2018/07/04/hello-world/. La URL puede cambiar; vaya al sitio web oficial del blog del autor para encontrar la dirección del artículo Hola mundo. Como se muestra en la Figura 4-1, las anotaciones en la parte inferior de la página se cargan mediante JavaScript y los datos de las anotaciones no aparecen en el código fuente de la página.
Para verificar que los comentarios debajo de la página se cargan usando JavaScript, podemos ver el código fuente de la página. Como se muestra en la Figura 4-2, el código donde se coloca la anotación no contiene datos de anotación, solo un fragmento de código JavaScript, y JavaScript extrae los datos renderizados finales y los carga en el código fuente para su renderización.
Además del blog del autor, también puede encontrar ejemplos de tecnología AJAX en el sitio web de comercio electrónico Tmall. Por ejemplo, si abre la página del producto iPhone XS Max en Tmall y hace clic en "Acumular reseñas", puede encontrar que la dirección URL anterior no ha cambiado, no se ha vuelto a cargar toda la página y la sección de comentarios de la página no ha cambiado. actualizado, como se muestra en la Figura 4-3.
Como se muestra en la Figura 4-4, también podemos ver el código fuente de la página del producto, que no tiene comentarios de usuario y está en blanco.
Si usa AJAX para cargar páginas web dinámicas, ¿cómo rastrear el interior del contenido cargado dinámicamente? Hay dos métodos:
(1) Analizar la dirección a través del elemento de inspección del navegador.
(2) Simular el rastreo del navegador a través de Selenium.