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.
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ń.
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.
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
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