私は、一連のキーワードを読み込んでAmazonで検索するスクレーパーをコーディングしようとしています。私は、そのページのキーワードと検索を使用して、そこにいくつのインスタンスがあるかを確認する必要があります。Node.jsでリクエストを取得してループを外してデータを取得する
私は検索したことがあり、人々は非同期関数とコールバックという用語を使用していましたが、その意味が分かりません。私はそれらの用語をグーグルで試してみましたが、私はまだ理解していません。
ここに私のコードがありますが、明らかに動作しません。私の現在の知識を使ってやろうとしていることを達成するための簡単な方法があれば、それは素晴らしいことです。
// load modules
var request = require('request');
var cheerio = require('cheerio');
//split into array
keywords = ["books", "bags", "shoes"];
// loop task for every keyword
global.i
for (i = 0; i < keywords.length; i++) {
console.log(keywords[i] + " was loaded.");
// get request
request('https://www.amazon.com/s/?url=field-keywords=' + keywords[i], function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
// try to use the keyword (doesn't work)
console.log(keywords[i]);
} // end get request
}); // get request end
// Try to use the html outside get request (doesn't work)
console.log(html);
} // loop end
なぜあなたは同じ時間にすべてのリクエストを行うためにループを使用しようとしていますか?間隔を置いて1つずつ。 –
それ以外は何を使うべきですか?私が必要とする1000個以下のキーワードでこれを行うと、今のところうまくいくようです。 –
私はアマゾンが許可しているとは思わない –