HTML-analizador en el nodo.js [cerrado]


¿Hay algo como el nokogiri de Ruby en nodejs? Me refiero a un analizador HTML fácil de usar.

Lo había visto en Node.js modules página algunos analizadores, pero no puedo encontrar algo bonito y fresco.

Author: Yves M., 2011-11-02

3 answers

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 son similares en rendimiento.

Es posible que desee echar un vistazo a htmlparser2, que es un analizador de streaming, 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 usa 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), compatible con WHATWG, y se usa en jsdom, Angular , y Polímero.

Y si desea analizar HTML para web scraping, puede utilizar YQL. 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 potencia de procesamiento. Aunque tenga en cuenta que no funcionará si la página no está permitida por el robot.txt del sitio web, YQL no funcionará con él.

Si el sitio web que está tratando de raspar es dinámico entonces debería usar un navegador sin cabeza como phantomjs. También echa un vistazo a casperjs , si estás considerando phantomjs. Y puede controlar casperjs desde el nodo con SpookyJS .

Además de phantomjs hay zombiejs. A diferencia de phantomjs que no se pueden incrustar en nodejs, zombiejs es solo un módulo de nodo.

Hay un nettuts+ toturial para las últimas soluciones.

 416
Author: Farid Nouri Neshat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-04 14:50:31

Intenta https://github.com/tmpvar/jsdom - le das algo de HTML y te da un DOM.

 12
Author: thejh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-02 09:24:23

También puedes echar un vistazo a x-ray: https://github.com/lapwinglabs/x-ray

 6
Author: png,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-06 16:40:13