cheerio
とrequest
のWebscraperを作成しましたが、今はURLの配列にループを実装しようとしています。Javascript/NodeJSコールバック関数とループ
残念ながら、私はコールとコールバックで何か間違っていますが、私は何が分かりません。
この私のコードです:私のデバッグプリントのいずれよりも
var getWebData = function(url) {
var i = 1;
var data = [];
for (c = 0; c < url.length; c++) {
data[i] = request(url[c], function(err, resp, body) {
console.log('ok');
if (!err) {
console.log('there');
var $ = cheerio.load(body);
$('.text').each(function(i, element) {
var jsObject = { name : "", description : "", price: "", categorie: "", pricePerKg: "", capacity: "", weight: "", scrapingDate : "", url: ""};
var name = 'TESTOK';
jsObject.name = name;
data.push(jsObject);
})
return data;
}
console.log('but');
});
i++;
}
var json = JSON.stringify(data);
fs.writeFile('output.json', JSON.stringify(json, null, 4), function(err) {
console.log('File successfully written!');
})
}
getWebData(url);
app.listen('8080');
注意が印刷されません。
誰かが自分のコードで何が間違っているのか知っていますか?それを動作させるにはどうすればよいですか?
は 'url'リストですか? – eLRuLL
"私のデバッグの印刷物が印刷されていることに注意してください..." - 何が印刷されていますか?また、非同期性を考慮していないため、 'data'は' JSON.stringify(data) 'で定義されていません。 –
urlは@lLuuLLのURLです@eLRuLL – rastafalow