Necesito analizar (del lado del servidor) grandes cantidades de páginas HTML.
Todos estamos de acuerdo en que regexp no es el camino a seguir aquí.
Me parece que javascript es la forma nativa de analizar una página HTML, pero esa suposición se basa en que el código del lado del servidor tiene toda la capacidad DOM que javascript tiene dentro de un navegador.
¿Node.js tiene esa capacidad incorporada?
¿Existe un mejor enfoque para este problema, analizando HTML en el lado del servidor?
fuente
Utilice Cheerio . No es tan estricto como jsdom y está optimizado para raspar. Como beneficio adicional, usa los selectores de jQuery que ya conoces.
fuente
jsdom
es demasiado lento para eso: /Utilice htmlparser2 , es más rápido y bastante sencillo. Consulte este ejemplo de uso:
https://www.npmjs.org/package/htmlparser2#usage
Y la demostración en vivo aquí:
http://demos.forbeslindesay.co.uk/htmlparser2/
fuente
Htmlparser2 de FB55 parece ser una buena alternativa.
fuente
jsdom es demasiado estricto para hacer cualquier tipo de raspado de pantalla real, pero beautifulsoup no se atraganta con un marcado incorrecto.
node-soupselect es un puerto de beautifulsoup de python en nodejs, y funciona a la perfección
fuente