HTML-parser na węźle.js [zamknięte]

Czy na nodejs jest coś podobnego do Ruby ' s nokogiri? Mam na myśli przyjazny dla użytkownika HTML-parser.

Widziałem na Node.js modules strona parserów, ale nie mogę znaleźć czegoś ładnego i świeżego.

Author: Yves M., 2011-11-02

3 answers

Jeśli chcesz zbudować DOM możesz użyć jsdom.

Jest też cheerio, posiada interfejsjQuery i jest dużo szybszy niż starsze wersje jsdom, choć w dzisiejszych czasach są podobne w wydajności.

Możesz rzucić okiem na htmlparser2 , który jest parserem strumieniowym i zgodnie z jego benchmarkiem wydaje się być szybszy od innych, a domyślnie nie ma DOM. Może również produkować DOM, ponieważ jest również w pakiecie z handler, który tworzy DOM. Jest to parser używany przez cheerio.

Parse5 również wygląda na dobre rozwiązanie. Jest dość aktywny (11 dni od ostatniego commita od tej aktualizacji), zgodny z WHATWG i jest używany w jsdom, kątowe i polimerowe .

I jeśli chcesz przeanalizować HTML dla skrobanie stron internetowych, możesz użyć YQL . Istnieje do tego moduł węzła. YQL myślę, że byłoby najlepszym rozwiązaniem, jeśli twój HTML jest z Strona statyczna, ponieważ polegasz na usłudze, a nie na własnym kodzie i mocy obliczeniowej. Pamiętaj jednak, że nie zadziała, jeśli strona zostanie odrzucona przez robota.txt strony, YQL nie będzie z nią działać.

Jeśli strona, którą próbujesz zeskrobać jestdynamiczna to powinieneś używać przeglądarki bez głowy Jak phantomjs. Zobacz też casperjs, jeśli rozważasz phantomjs. I można sterować kacperjsem z węzła za pomocą SpookyJS .

Obok phantomjs jest zombiejs . W przeciwieństwie do phantomjs, który nie może być osadzony w nodejs, zombiejs jest tylko modułem węzłowym.

Istnieje nettuts+ toturial dla tych ostatnich rozwiązań.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-04 14:50:31

Try https://github.com/tmpvar/jsdom - dajesz mu jakiś HTML, a on daje 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/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-02 09:24:23

Możesz też spojrzeć na rentgen: 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/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-06 16:40:13