Sofern die Datei package.json in gültigem Format im Wurzelverzeichnis der Applikation liegt ist eine Reinstallation aller Module mit dem löschen des node_modules Ordner im Wurzelverzeichnis und dem Ausführen von
npm install |
erledigt.
Info:
node.js NPM installiert, sofern der Parameter -g (global) NICHT angegeben wird, alle Module in den Ordner node_modules im Wurzelverzeichnis der aktuellen Applikation.
Das einfache Verarbeiten von Inhalten auf Internetseiten in der node.js Umgebung ist bequem mit dem Modul cheerio möglich. Hierbei läd man die Webseite wie gewohnt mit einem der verfügbaren HTTP Module. Injiziert nun zusätzlich die jQuery Bibliothek und läd den DOM in das jQuery Module. Ab diesem Punkt ist es möglich auf alle Elemente der Internetseite mit den gewohnten jQuery Funktionen zu bearbeiten bzw. Inhalte zu extrahieren.
Das Beispielskript sollte copy & paste funktionieren. 🙂
#!/usr/bin/env node 'use strict'; var http = require('http'); var cheerio = require('cheerio'); // socket timeout var myTimeout = 100; // on error var err = function(e) { console.log(e) } // used to set socket timeout var timeout = function(socket) { socket.setTimeout(myTimeout); socket.on('timeout', function() { req.abort(); }); } var req = http.get({host: 'example.com', port: 80, path: '/'}, function(res) { var html = ''; // executed if part of data comes in res.on('data', function(data) { html += data; // executed if all data received }).on('end', function() { // check HTTP status / errors console.log(res.statusCode); // load jquery (cheerio) to your received HTML document var $ = cheerio.load(html); // *** JQUERY LIKE CODE *** // use code like in browser $('h1').each(function() { console.log($(this).text()); }); }); }).on('error', err).on('socket', timeout); |
Alternativ kann natürlich auch ein synchroner HTTP Client verwendet werden.
Vorher die Installation des cheerio Moduls in der Shell nicht vergessen:
npm install cheerio |