2016-06-23 10 views
5

Jestem nowym Gruntem, próbując znaleźć sposób na załadowanie wielu plików HTML i przeanalizowanie ich w celu wyodrębnienia niektórych wartości.Jak parsować HTML do DOM z Gruntem

Próbowałem użyć jQuery.parseHTML, HTMLParser, ale oba nie są zdefiniowane. Czy istnieje sposób na włączenie jQuery lub lib, które mogą parsować HTML?

grunt.config.init({ 
    concat: { 
     options: { 
      dest: 'tmp', 
      templates: ['public/*.html'] 
     } 
    } 
}); 

var recursiveConcat = function(source, result){ 
    grunt.file.expand(source).forEach(function(file){ 
     var data = grunt.file.read(file); 
     // parse html to dom 
     result += data; 
    }); 
    return result; 
}; 
+0

Węzeł nie jest przeglądarką, więc nie ma "okna" lub "dokumentu". Nawet jeśli załadujesz jQuery, nadal nie będziesz mieć parsera DOM. –

+1

Podobne pytania: [Jak analizować stronę HTML za pomocą Node.js] (http://stackoverflow.com/q/7372972), [Dlaczego node.js ma natywny DOM?] (Http: // stackoverflow.com/q/6657216) –

+0

co to ma wspólnego z chrząknięciem? – dandavis

Odpowiedz

0

Wygląda na to, że pisanie własnych zadań Grunt jest całkiem proste. Próbki i opisy here i here

Następnie należy utworzyć zadanie za pomocą htmlparser, aby zarządzać procesem.

Jednak chyba że masz zamiar to ponownie wykorzystać lub powiązać go z jakiegoś innego zadania grunt (jak grunt-watch) może się okazać, że łatwiej jest po prostu utworzyć skrypt węzła przy użyciu htmlparser

2

Cheerio jest parser DOM które lubię używać. Nie próbowałem tego, ale grunt-dom-massager pozwala załadować Cheerio do pliku Gruntfile.

+0

Dzięki temu działa świetnie z Cheerio! :) – user1560922

Powiązane problemy