¿Hay algo como el nokogiri de Ruby en nodejs? Me refiero a un analizador de HTML fácil de usar.
Había visto en la página de módulos de Node.js algunos analizadores, pero no puedo encontrar algo bonito y fresco.
¿Hay algo como el nokogiri de Ruby en nodejs? Me refiero a un analizador de HTML fácil de usar.
Había visto en la página de módulos de Node.js algunos analizadores, pero no puedo encontrar algo bonito y fresco.
Respuestas:
Si quieres construir DOM puedes usar jsdom .
También hay cheerio , tiene la interfaz jQuery y es mucho más rápido que las versiones anteriores de jsdom, aunque en estos días tienen un rendimiento similar.
Es posible que desee echar un vistazo a htmlparser2 , que es un analizador de transmisión, y de acuerdo con su punto de referencia, parece ser más rápido que otros, y no DOM por defecto. También puede producir un DOM, ya que también se incluye con un controlador que crea un DOM. Este es el analizador que utiliza cheerio.
parse5 también parece una buena solución. Es bastante activo (11 días desde la última confirmación a partir de esta actualización), cumple con WHATWG y se usa en jsdom , Angular y Polymer .
Y si desea analizar HTML para el raspado web , puede usar YQL 1 . Hay un módulo de nodo para ello. YQL creo que sería la mejor solución si su HTML es de un sitio web estático , ya que depende de un servicio, no de su propio código y poder de procesamiento. Aunque tenga en cuenta que no funcionará si el robot.txt del sitio web no permite la página, YQL no funcionará con ella.
Si el sitio web que está tratando de raspar es dinámico, entonces debería usar un navegador sin cabeza como phantomjs . También eche un vistazo a casperjs , si está considerando phantomjs. Y puede controlar casperjs desde el nodo con SpookyJS .
Al lado de phantomjs hay zombiejs . A diferencia de los phantomjs que no se pueden incrustar en nodejs, zombiejs es solo un módulo de nodo.
Hay un nettuts + toturial para las últimas soluciones.
1 Desde agosto de 2014, la biblioteca YUI, que es un requisito para YQL, ya no se mantiene activamente, fuente
Pruebe https://github.com/tmpvar/jsdom : le da un poco de HTML y le da un DOM.
También puede echar un vistazo a los rayos X: https://github.com/lapwinglabs/x-ray