async モジュールを使用して、nightmarejs で複数の URL を反復処理しています。毎回再認証する必要があるため、新しいナイトメア インスタンスを作成できません。
だから私は非同期モジュールを使用しようとしています。個々の URL ではなく、すべての反復の URL が配列内の最終的な URL であるという (古典的な) 問題が発生しています。asyncモジュールを使用するとこれが修正されると思いました(letも使用してみました)が、まだ問題が発生しています
'use strict'
var Nightmare = require("nightmare");
var async = require("async");
//Creates the authenticated nightmare instance
var scraper = new Nightmare()
.goto('https://www.example.com/signin')
.type('#login', 'username')
.type('#password', 'password')
.click('#btn')
.run(function(err, nightmare) {
if (err) {
console.log(err);
}
console.log('Done.');
});
//Trying to use async module to iterate through urls
function load(url, callback){
scraper
.goto(url)
.wait(2000)
.screenshot('pic'+url[25]+'.png')
.run(function(err, nightmare) {
if (err) {
console.log(err);
}
console.log('Done with ', url[25]);
callback()
});
}
var urls = [
'https://www.example.com/p1',
'https://www.example.com/p2',
'https://www.example.com/p3',
]
async.each(urls, load, function (err) {
console.log('done!');
});
アドバイスをありがとう