私はyelpからスクレイプしようとしており、以下のコードを添付しています。私は配列にデータを格納する際に問題があります。 、私は配列にデータをプッシュしようとするたびにレスポンス後ノードJSで配列プッシュが永遠に起こる
...
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...
});
}
});
だから、それだけでは動作しません永遠に待ち続ける:
は、ここに私のコードです。プッシュを削除すると、すべてのデータを管理します。
私はフィルターの代わりにそれぞれを試しましたが、運はありません。手動で配列インデックスに入れようとしましたが、まだ動作しませんでした。コードで何が間違っているのか分かりますか?
UPDATE
私は、ページの上部にこれを追加しました。
var id, title, link, neighborhood, address, phone = [];
'title.push'として
title
を割り当てる動作しません。プロパティは未定義からプッシュ '? – vlaz私はそれをvar title = [];として定義しました。 –
'これをページの先頭に追加しました。 'しかし' title'はまだ定義されていません。 'phone'だけが新しい配列に割り当てられ、他のすべての変数は単に宣言されますが、それ以外の場合は初期化されません。 – vlaz