J'ai besoin d'analyser (côté serveur) de grandes quantités de pages HTML.
Nous sommes tous d'accord pour dire que l'expression rationnelle n'est pas la voie à suivre ici.
Il me semble que javascript est la manière native d'analyser une page HTML, mais cette hypothèse repose sur le code côté serveur ayant toutes les capacités DOM que javascript a dans un navigateur.
Node.js a-t-il cette capacité intégrée?
Existe-t-il une meilleure approche à ce problème, en analysant le HTML côté serveur?
la source
Utilisez Cheerio . Ce n'est pas aussi strict que jsdom et est optimisé pour le scraping. En prime, utilise les sélecteurs jQuery que vous connaissez déjà.
la source
jsdom
est trop lent pour cela: /Utilisez htmlparser2 , c'est plus rapide et assez simple. Consultez cet exemple d'utilisation:
https://www.npmjs.org/package/htmlparser2#usage
Et la démo en direct ici:
http://demos.forbeslindesay.co.uk/htmlparser2/
la source
Htmlparser2 de FB55 semble être une bonne alternative.
la source
jsdom est trop strict pour faire de vraies choses de grattage d'écran, mais beautifulsoup ne s'étouffe pas avec un mauvais balisage.
node-soupselect est un portage de beautifulsoup de python dans nodejs, et cela fonctionne à merveille
la source