tutorial scraping scrap node crawler javascript web-crawler

scraping - ¿Cómo manejan javascript los rastreadores web?



web scraping javascript tutorial (6)

Hoy en día, una gran cantidad de contenido en Internet se genera mediante JavaScript (específicamente mediante llamadas AJAX en segundo plano). Me preguntaba cómo los rastreadores web como Google los manejan. ¿Están conscientes de JavaScript? ¿Tienen un motor de JavaScript incorporado? O simplemente ignoran todo el contenido generado por JavaScript en la página (supongo que es bastante improbable). ¿Las personas utilizan técnicas específicas para obtener su contenido indexado que de otro modo estaría disponible a través de solicitudes AJAX de fondo para un usuario normal de Internet?


Bing y los rastreadores de Google manejan JavaScript. Yahoo utiliza los datos del rastreador de Bing, por lo que también debe manejarse. No busqué en otros motores de búsqueda, así que si te interesan, deberías buscarlos.

Bing publicó una guía en marzo de 2014 sobre cómo crear sitios web basados ​​en JavaScript que funcionen con sus rastreadores (en su mayoría relacionados con pushState ) que son buenas prácticas en general:

Posteriormente, Google publicó una guía en mayo de 2014 sobre cómo crear sitios web basados ​​en JavaScript que funcionen con su rastreador, y también se recomiendan sus recomendaciones:

  • No bloquee JavaScript (y CSS) en el archivo robots.txt.
  • Asegúrese de que puede manejar la carga de los rastreadores.
  • Es una buena idea admitir navegadores y rastreadores que no pueden manejar (o usuarios y organizaciones que no lo permiten) JavaScript
  • Es posible que el JavaScript complicado que se basa en características arcanas o específicas del idioma no funcione con los rastreadores.
  • Si su JavaScript elimina el contenido de la página, es posible que no se indexe. alrededor.

He probado esto colocando páginas en mi sitio a las que solo se puede acceder con Javascript y luego observando su presencia en los índices de búsqueda.

Las páginas de mi sitio a las que solo se podía acceder con Javascript fueron indexadas posteriormente por Google.

El contenido se alcanzó a través de Javascript con una técnica ''clásica'' o construyendo una URL y configurando la ubicación de la ventana en consecuencia.


La mayoría de ellos no manejan Javascript de ninguna manera. (Al menos, los rastreadores de todos los motores de búsqueda principales no lo hacen).

Es por esto que sigue siendo importante que su sitio maneje con gracia la navegación sin Javascript.


Los rastreadores no analizan Javascript para descubrir lo que hace.

Pueden construirse para reconocer algunos fragmentos clásicos como onchange="window.location.href=this.options[this.selectedIndex].value;" o onclick="window.location.href=''blah.html'';" , pero no se molestan en cosas como el contenido obtenido mediante AJAX. Al menos no todavía, y el contenido recuperado de esa manera siempre será secundario de todos modos.

Por lo tanto, Javascript debe usarse solo para funcionalidad adicional. El contenido principal que desea que los rastreadores encuentren debe ser texto sin formato en la página y enlaces regulares que los rastreadores puedan seguir fácilmente.


Precisamente lo que dijo Ben S. Y cualquiera que acceda a su sitio con Lynx tampoco ejecutará JavaScript. Si su sitio está destinado al uso público general, generalmente debería poder utilizarse sin JavaScript.

Además, relacionado: si hay páginas que querría encontrar en un motor de búsqueda, y que normalmente surgirían solo de JavaScript, podría considerar generar versiones estáticas de las mismas, a las que se puede acceder mediante un mapa del sitio rastreable, donde estas páginas estáticas usan JavaScript cargue la versión actual cuando sea golpeado por un navegador habilitado para JavaScript (en caso de que un humano con un navegador siga su mapa del sitio). El motor de búsqueda verá la forma estática de la página y puede indexarla.


los rastreadores pueden manejar llamadas a javascript o ajax si utilizan algún tipo de frameworks como ''htmlunit'' o ''selenium''