94 votos

¿Cómo analizar una página HTML con Node.js

Es necesario analizar (lado del servidor) grandes cantidades de páginas HTML.
Todos estamos de acuerdo en que regexp no es el camino a seguir aquí.
A mí me parece que javascript es el nativo manera de analizar una página HTML, pero esa suposición se basa en el servidor de código del lado del tener todos los DOM capacidad de javascript en un navegador.

¿Node.js tiene la capacidad incorporada?
Existe una mejor manera de abordar este problema, el análisis de HTML en el lado del servidor?

87voto

kzh Puntos 5098

Usted puede utilizar el mecanismo nacional de prevención módulos jsdom y htmlparser para crear y analizar un DOM en Node.JS.

Otras opciones incluyen:

  • BeautifulSoup para python
  • usted puede convertir de html a xhtml y el uso de XSLT
  • HTMLAgilityPack .NET
  • CsQuery .NETO (mi favorito)
  • El mono araña y el rinoceronte JS motores nativas E4X de apoyo. Esto puede ser útil, sólo si se puede convertir de html a xhtml.

De todas estas opciones, yo prefiero usar el Node.js opción, debido a que utiliza el estándar de la W3C DOM métodos de descriptor de acceso y puedo reutilizar el código en el cliente y el servidor. Deseo BeautifulSoup métodos eran más similares a los de la W3C dom, y creo que la conversión de HTML a XHTML para escribir XSLT simplemente es un sádico.

63voto

Meekohi Puntos 646

El Uso De ¡Hasta La Vista. No es tan estricta como jsdom y está optimizado para el raspado. Como un bono, utiliza los selectores de jQuery que ya sabes.

❤ Sintaxis Familiar: ¡hasta la vista implementa un subconjunto de core de jQuery. ¡Hasta la vista elimina todos los DOM inconsistencias y navegador resto de jQuery biblioteca, revelando su auténtica preciosidad API.

ϟ Extraordinariamente rápido: ¡hasta la vista funciona con un muy simple, consistente de DOM modelo. Como resultado del análisis, la manipulación, y la representación son increíblemente eficiente. Preliminar de extremo a extremo de puntos de referencia sugieren que ¡hasta la vista está acerca de 8x más rápido que JSDOM.

❁ Increíblemente flexible: ¡hasta la vista, se envuelve alrededor de @FB55 de perdón htmlparser. ¡Hasta la vista puede analizar casi cualquier documento HTML o XML.

6voto

esp Puntos 1051

Htmlparser2 por FB55 parece ser una buena alternativa.

2voto

Yarek T Puntos 3105

jsdom es demasiado estricta, para hacer real la pantalla de raspado tipo de cosas, pero beautifulsoup no ahogar el mal marcado.

nodo-soupselect es un puerto de python beautifulsoup en nodejs, y funciona de maravilla

0voto

josh3736 Puntos 41911

En .NETA, no el HTML Agilidad Pack, que es un muy sólido análisis de HTML de la biblioteca.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X