Wie verwenden von JQuery-Selektoren in Node.js
Ich versuche, zu extrahieren, per E-Mail info von HTML-Dateien in meiner Festplatte.
Wenn ich laden Sie die Datei in firefox und führen jQuerify bookmarklet kann ich erfolgreich die folgenden Selektor/Funktion
window.jQuery("a.iEmail").each(function(el) {
console.log(window.jQuery(this).attr('href'))
});
Aber mit diesem in Node.js funktioniert nicht
var document = require("jsdom").jsdom(),
script = document.createElement("script"),
fs = require('fs');
fs.readFile('file_1.html', 'utf-8', function(err, data){
if (err) {
throw err;
}
//This output the document
//console.log(data)
var window = document.createWindow(data);
script.src = 'http://code.jquery.com/jquery-1.4.2.js';
script.onload = function() {
console.log(window.jQuery.fn.jquery);
//outputs: 1.4.2
//console.log(window.jQuery);
/*
* This line works if i load the local file in firefox and execute
* the jQuerify bookmarlet
*/
window.jQuery("a.iEmail").each(function(el) {
console.log(window.jQuery(this).attr('href'))
});
};
document.head.appendChild(script);
});
- Cheerio speziell geeignet für 😀 siehe stackoverflow.com/a/33654529/1480391
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß jetzt, was das problem ist.
Den html-Daten, die bestanden werden müssen, in der Erstellung von Dokumenten aufrufen, damit der code wie folgt Aussehen:
Es ist hart, zu verwenden mit jquery node.js aber es ist möglich. Hier ist eine Umsetzung mit jsdom:
Weitere Infos finden Sie unter:
http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs
oder:
Kann ich mit jQuery verwenden Node.js?
Mit Cheerio
Cheerio ist eine server-Implementierung der Kern von jQuery, die perfekt für die Verwendung von Selektoren.
Können Sie ganz einfach mit der jede Funktion:
Vollständigen Beispiel:
jsdom
unterstütztjQuery
mit "offiziellen" Weg.Einfachen code:
https://github.com/tmpvar/jsdom#easymode