私にはかなりトリッキーなタスクがありますが、NodeJSの初心者です。
したがって、URLの配列をループし、配列から各ページをフェッチし、jsdom + jqueryを介して渡し、配列の最後に新しく見つかったURLを追加する必要があります。
一見したところ、タスクは非常に単純ですが、NodeJSの非同期のため、悪夢になります。
今、私は次のようなコードを持っています(理解を深めるために簡略化されています)
var jsdom = require("jsdom");
var fs = require("fs");
var jquery = fs.readFileSync("./jquery.js").toString();
var fields = ['http://some.url/page.html']
for(var b=0, len = fields.length;b<len;b++){
jsdom.env({
html: fields[b],
src: [jquery],
done: function (errors, window) {
var $ = window.$;
$("div.pager a").each(function() {
//Push new finded hyperlinks in array
fields.push($(this).attr('href'));
});
}
});
//recalculate actual length of array to make more loop
len=fields.length;
}
そして確かに、NodeJSの概念のために、その構築は機能しません。誰かがそれを実際のライブにする方法をアドバイスできますか?