Ich versuche, einen Schaber zu programmieren, der eine Reihe von Keywords laden und sie auf Amazon suchen wird. Ich muss dann das Schlüsselwort verwenden und auf der Seite suchen, um zu sehen, wie viele Instanzen es gibt.Anfrage erhalten, Schleifen und Senden von Daten außerhalb Anforderung in Node.js
Ich habe gesucht und Leute gesehen, die den Begriff asynchrone Funktion und Rückruf verwenden, aber ich weiß nicht, was diese bedeuten und jedes Mal ist die Erklärung über meinen Kopf. Ich habe versucht, diese Begriffe zu googeln und ich verstehe es immer noch nicht.
Hier ist mein Code und offensichtlich funktioniert es nicht. Wenn es eine einfache Möglichkeit gibt, das zu erreichen, was ich mit meinem derzeitigen Wissen zu tun versuche, wäre das großartig.
// 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
Variable html innerhalb der Callback-Funktion der Anfrage verwenden Warum haben Sie versucht, für Loops zu verwenden, um alle Anfragen in der gleichen Zeit zu machen, kann Amazon Grenzen für Anfragen pro Sekunde Versuch muss man anfordern um eins mit Intervall. –
Was sollte ich sonst noch benutzen? Es scheint so weit zu funktionieren, wenn ich es mit weniger als 1000 Keywords mache, was alles ist, was ich brauche. –
Ich glaube nicht, dass Amazon erlaubt das –