Ich versuche, von yelp kratzen und habe den folgenden Code beigefügt. Ich habe Probleme beim Speichern der Daten im Array.Array Push dauert für immer in Node JS nach Antwort
Hier ist mein Code:
...
var id, title, link, neighborhood, address, phone = [];
router.get('/', function(req, res, next) {
var cheerio = require('cheerio');
while (scrapepage) {
var options = {
uri: 'https://www.yelp.co.uk/search?find_desc='+find+'&find_loc='+city+''+'&start='+page,
transform: function (body) {
return cheerio.load(body);
}
};
page += 10;
rp(options)
.then(function ($) {
var json = { id: "", title : "", link : "", neighborhood : "", address : "", phone : ""};
$('.biz-name span').filter(function(){
var data = $(this).text();
console.log(data);
//title.push(data);
title_count++;
});
...
res.send('Check your console!')
})
.catch(function (err) {
// Crawling failed or Cheerio choked...
});
}
});
Also, wenn ich versuche, die Daten-Array zu schieben, es funktioniert einfach nicht, hält ewig warten. Wenn ich den Push entferne, tröstet er alle Daten.
Ich habe auch mit jedem statt Filter versucht, aber kein Glück. Auch versucht, manuell in Array-Index, noch nicht funktioniert. Darf ich wissen, was ich falsch im Code mache?
UPDATE
Ich habe dies an der Spitze der Seite hinzugefügt.
var id, title, link, neighborhood, address, phone = [];
'title.push' zuweisen - aber Sie haben nichts zu' title' zugewiesen - sollte dieser Code nicht mit 'kann andernfalls nicht erhalten Property Push von undefined'? – vlaz
Ich habe es als var title = [] definiert; –
'Ich habe das oben auf der Seite hinzugefügt.' 'Title' ist jedoch immer noch nicht definiert. Nur ein "Telefon" ist einem neuen Array zugewiesen, alle anderen Variablen sind lediglich deklariert, aber ansonsten nicht initialisiert. – vlaz