[英]Dynamic web page scraping with npm cheerio and and request
我正在嘗試從具有基本URL以及動態路由的網站上抓取數據。 這個特定的站點僅使用數字,因此我有以下代碼來獲取數據:
for (var i = 1; i <= total; i++) { var temp = base_url + i; var result = ""; request(temp, function(error, response, body) { var $ = cheerio.load(body); var address_string = 'http://maps.google.com/?q=' + $('title').text(); //firebase database.ref('events/' + i).set({ "address": address_string }); }); }
但是,以上代碼不起作用,也不會向數據庫添加任何內容。 有人知道怎么了嗎?
我不確定原因,但在您編寫的代碼中會有奇怪的表現的一件事是變量i未綁定到請求的回調范圍,並且for循環將在調用任何回調之前完成。
如果這是問題所在,則i === total只能有一個db條目。
這可以通過執行Array.forEach來解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.