0
Je suis en train de gratter une page entière en utilisant js cauchemar et renvoyer le résultat à la fonction d'appel. Pour ce faire, en étendant l'exemple du cauchemar, je passe un argument à une fonction de générateur. Pour une raison que je ne comprends pas, la fonction run() n'est jamais appelée.passer argument aux générateurs, vo
Merci pour votre aide.
var Nightmare = require('nightmare');
var vo = require('vo');
const fs = require('fs');
url = "http://google.com";
vo(run(url))(function(err, result) {
if (err) throw err;
console.log("end result length: ", result.length);
fs.writeFile("test.html", result, function(err) {
if(err) { return console.log(err); } })
});
function *run(url) {
console.trace()
var x = Date.now();
var nightmare = Nightmare();
var html = yield nightmare
.goto(url) // 'http://google.com')
.evaluate(function() {
return document.getElementsByTagName('html')[0].innerHTML;
});
console.log("done in " + (Date.now()-x) + "ms");
console.log("result:", html.length);
yield nightmare.end();
return html;
}
S'il vous plaît voir [ « question devrait-elle inclure des « balises » dans leurs titres? »] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags -dans-leurs-titres), où le consensus est "non, ils ne devraient pas"! –
Réponse facile: changez la ligne "vo (run (url)) (fonction (err, résultat) {})" en "vo (exécutez) (url, function (err, result) {})" –