Headless Crawling

En la categoria:

El headless crawling es la navegación automatizada de Internet y dominios individuales utilizando un navegador headless (sin cabeza), que es un navegador web sin interfaz gráfica de usuario. El headless crawling incluye muchos enfoques y métodos para extraer, almacenar, analizar y procesar datos. Los sitios web, las aplicaciones web y las características individuales de las webs también pueden probarse y comprobarse automáticamente. El headless crawling incluye superposiciones temáticas con temas como la recuperación de información, data mining, el scraping y la automatización de pruebas.

Información general

Hasta hace poco, Google recomendaba el uso de navegadores headless para rastrear webs dinámicas. Los operadores tenían que proporcionar una captura de pantalla HTML de su sitio web, para que Google pudiera leer y evaluar el contenido de la misma. El llamado esquema de rastreo/crawl AJAX ha quedado obsoleto y ya no se utiliza. En cambio, el contenido de la web se proporciona independientemente de la tecnología utilizada, incluyendo el dispositivo, el navegador y la conexión a Internet, lo que se conoce como mejora progresiva [1]. El headless crawling es esencialmente una parte de cualquier motor de búsqueda. El contenido de la Web se navega, pero no se renderiza o muestra al usuario de forma gráfica.

Lo que sucede con los datos detectados, es una cuestión de enfoque. Sin embargo, se supone que el motor de búsqueda de Google utiliza la capacidad de headless crawling desde 2004 y JavaScript ya no es un problema desde octubre de 2015. Los motores de búsqueda pueden usar headless crawling para evaluar sitios web. En la medida en que el crawler simula una llamada a un sitio web con una interfaz no gráfica, los motores de búsqueda pueden sacar conclusiones de esta información y calificar los sitios web en función de su comportamiento en el navegador headless [2].

Cómo funciona

En el centro del headless crawling se encuentra el navegador headless, un programa que lee el contenido web, lo pasa a otros programas o lo muestra basado en texto en forma de archivos, listas y matrices. Este tipo de navegadores obtienen acceso a los sitios web mediante su implementación en una infraestructura de servidor. Opcionalmente, se puede utilizar un servidor virtual o un servidor proxy. Desde allí, el navegador headless intenta acceder a una URL; éste es el punto de partida del proceso de crawling, que se inicia con una línea de comandos o un comando de script [3]. Dependiendo de la configuración, el navegador puede encontrar más URLs. Los contenidos almacenados allí pueden ser procesados, incluso la cuestión de las posiciones de enlace en el sitio web es posible. Sin embargo, una interfaz API, que transfiere los datos al programa de tratamiento, es a menudo necesaria para este propósito.

Lo que hace que el headless crawling sea especial es la comunicación máquina a máquina (M2M). Tanto las URLs llamadas como el contenido web encontrado no se muestra al usuario final, como en el caso de los navegadores convencionales. En su lugar, el navegador headless reenvía los datos recuperados en formatos que deben definirse de antemano, pero que pueden procesarse automáticamente más tarde. Si se implementa de forma extensiva, un navegador headless puede manejar diferentes lenguajes de programación, scripts y procesos gracias a una API que puede comunicarse con otros programas o infraestructuras a través de peticiones HTTP o TCP. Este principio se utiliza a menudo para extraer grandes cantidades de datos, lo que en última instancia plantea la cuestión de hasta qué punto es legal recopilar y procesar dichos datos. En principio, los derechos de autor, los acuerdos de privacidad y la privacidad de los usuarios podrían ser violados [4]. Lo mismo se aplica a los portales de comparación de precios, motores de búsqueda y proveedores de meta-búsqueda.

Relevancia práctica

El headless crawling no sólo se aplica en los motores de búsqueda, sino también en otros casos de uso. Dos ejemplos:

  • Automatización de pruebas: La prueba/test de sitios web, elementos de sitios web y funciones es un uso común del headless crawling. De esta manera, los enlaces rotos, los redireccionamientos, los elementos interactivos, los componentes individuales (unidades) y los módulos pueden ser comprobados con respecto a su función. Se pueden probar las características de rendimiento y la generación de contenido de sitios web a partir de bases de datos. Con una implementación extensiva, los sitios web pueden ser probados de forma relativamente completa y, sobre todo, automatizados. Por lo tanto, los escenarios de prueba que utilizan el headless crawling van mucho más allá del mero test de un sistema en términos de caídas, errores del sistema y comportamiento no deseado. Los tests con headless crawling son similares a las pruebas de aceptación porque el navegador headless puede simular el comportamiento de los sitios web desde la perspectiva del usuario y, por ejemplo, los enlaces de clic [5]. Sin embargo, se requieren profundos conocimientos de programación y scripting para este escenario. Dado que las pruebas se realizan a petición del cliente o con un objeto de prueba seleccionado cuyos derechos pertenecen al propietario del sitio, la automatización de pruebas con headless crawling no suele ser objetable. Los navegadores headless conocidos con framework (API, soporte de lenguajes de programación o manejo de DOM) son Selenium, PhatnomJS o HtmlUnit. Por lo general, los navegadores headless utilizan un motor de diseño, que también está integrado en los navegadores convencionales y en los rastreadores de los motores de búsqueda. Ejemplos de motores de diseño son Webkit, Gecko o Trident.
  • Web Scraping: El scraping es una técnica de crawling, en la que se extraen los datos y se agregan para su uso posterior. A veces se recopilan, leen y procesan grandes cantidades de datos de una o más fuentes. El scraping puede ser perjudicial y se clasifica como tecnología de black-hat o cracker en muchos escenarios de uso. Los ataques de denegación de servicio (denial of service, DoS) y denegación de servicio distribuida (DDoS) utilizan el principio de headless crawling para acceder a un sitio web o aplicación web [6]. A menudo se utilizan algunos métodos ilegales, por ejemplo, para ocultar la dirección IP (IP spoofing) para distraer del ataque real a la red o infiltrar la comunicación entre el servidor y varios clientes a través de TCP (hijacking).

Relevancia para la optimización de motores de búsqueda

El headless crawling es un aspecto importante de SEO. Como ya se ha mencionado, el principio es (muy probablemente) utilizado por varios motores de búsqueda para rastrear sitios web y aplicaciones web, incluso si el esquema de crawl AJAX está obsoleto. Google recomienda en diferentes puntos de las Directrices de calidad utilizar un navegador basado en texto, como Lynx, para representar los sitios web tal y como los ve Google. Se puede asumir que la capacidad de Google y de otros motores de búsqueda puede hacer mucho más que los navegadores basados en texto y lo que se comunica oficialmente. Por consiguiente, tendría sentido aprender headless crawling en detalle. Porque con este principio, los sitios web pueden ser probados a fondo y con esta perspectiva los SEOs pueden aventurarse a mirar detrás de las escenas del operador del motor de búsqueda, sin perder de vista a los usuarios.

Referencias

[1] [2] [3] [4] [5] [6]