0
我構建了一個樣本測試刮板來了解Cheerio和jQuery。Cheerio Node.JS外部標題鏈接問題
我在收到一組URL並存儲它們之後,在第二個請求上撓頭,是要做另一個請求來加載這些URL並從該頁面的標題中提取標題。
我的代碼看起來像這樣。
var request = require('request'),
cheerio = require('cheerio');
urls = [];
titles = [];
request('http://reddit.com', function(err, resp, body){
if(!err && resp.statusCode == 200){
var $ = cheerio.load(body);
$('a.title', '#siteTable').each(function(){
var url = $(this).attr('href');
urls.push(url);
});
//issue is here
for(var i = 0; i < urls.length; i++){
request(urls[i], function(err, resp, body){
var $ = cheerio.load(body);
var title = $("title").text();
console.log(title);
});
}
}
});
看來,當從頁面歸屬標題時,我會得到某處未定義的屬性。
我必須提到我是jQuery的新手,所以這段代碼可能看起來很荒謬(我假設)。
我從控制檯收到的錯誤是,
TypeError: Cannot read property 'parent' of undefined
at Function.exports.update (/home/pi/node_modules/cheerio/lib/parse.js:55:25)
at module.exports (/home/pi/node_modules/cheerio/lib/parse.js:17:11)
at Function.exports.load (/home/pi/node_modules/cheerio/lib/static.js:19:14)
at Request._callback (/home/pi/scraper.js:16:22)
at self.callback (/home/pi/node_modules/request/request.js:187:22)
at Request.emit (events.js:95:17)
at Request.init (/home/pi/node_modules/request/request.js:275:17)
at new Request (/home/pi/node_modules/request/request.js:129:8)
at request (/home/pi/node_modules/request/index.js:55:10)
at Request._callback (/home/pi/scraper.js:15:6)
我明白,這個錯誤意味着,我有一個變量不確定,我試圖讓次級屬性類似.someThing但錯誤點第二次請求中的回調函數。
有關如何解決此問題的任何建議?
請注意,許多變量都是全局變量,因爲您在第二個變量定義之後使用了分號而不是逗號。 – adeneo