Il nuovo modo utilizzando ES7/promesse
Di solito quando si sta raschiando che si desidera utilizzare un metodo per
- Prendi la risorsa sul server web (documento html di solito)
- Leggi questa risorsa e lavora con esso come
- Una struttura ad albero/DOM e renderlo navigabile
- analizzarlo come documento-token con qualcosa come SAS.
Sia albero, e token-analisi hanno vantaggi, ma l'albero è solito sostanzialmente più semplice. Lo faremo. Scopri request-promise, ecco come funziona:
const rp = require('request-promise');
const cheerio = require('cheerio'); // Basically jQuery for node.js
const options = {
uri: 'http://www.google.com',
transform: function (body) {
return cheerio.load(body);
}
};
rp(options)
.then(function ($) {
// Process html like you would with jQuery...
})
.catch(function (err) {
// Crawling failed or Cheerio
Questo sta usando cheerio che è essenzialmente un leggero lato server libreria jQuery-esque (che non ha bisogno di un oggetto finestra, o jsdom).
Poiché si utilizzano promesse, è anche possibile scrivere in una funzione asincrona. Sembrerà sincrono, ma sarà asincrono con ES7:
async function parseDocument() {
let $;
try {
$ = await rp(options);
} catch (err) { console.error(err); }
console.log($('title').text()); // prints just the text in the <title>
}
fonte
2016-05-31 02:17:54
Mi sento come se il tuo secondo link rispondesse alla tua stessa domanda –
@sirhc - node.io sembra esattamente _ esattamente che cosa sto cercando ... grazie! – Avishai
come autore di node.io Posso garantire per questo;) – chriso