close
目標
如前一篇實作的範例(使用cheerio 抓取蘋果日報的RSS資訊)
這裡接著要做的是讀取CNN的RSS資訊
一個中文的網站一個英文的網站來當練習,哈哈...
CNN的RSS連結為 http://edition.cnn.com/services/rss/
實作
下面的程式碼可以取得CNN的每個種類的資訊以及他們的href連結
cnn.getTitleList = function(req, res) {
request({
uri: rssLink,
headers: {
'User-Agent': 'Mozilla/5.0'
}
}, function(error, response, html) {
if (!error && response.statusCode == 200) {
var titleList = [];
var title;
var $ = cheerio.load(html, {
decodeEntities: true,
xmlMode: true
});
$('image title').each(function(i, element) {
console.log($(this).text());
title = $(this).text();
});
$('item title').each(function(i, element) {
console.log($(this).text());
titleList.push({
title: $(this).text()
});
});
res.json({
rssTitle: title,
titleList: titleList
});
} else {
res.json({
status: 'error',
message: 'fail to request'
});
}
});
}
這裡的程式碼的目的則依據給訂的RSS href,取得RSS的內容
CNN的RSS內容就可以直接使用cheerio來讀取,不需要像蘋果日報那樣改用htmlparser2來處理,相對簡單些
cnn.getRssList = function(req, res) {
var rssList = [];
request({
uri: cnnURL,
headers: {
'User-Agent': 'Mozilla/5.0'
}
},
function(error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('tr td.cnnRSS:first-child').each(function(i, element) {
var next = $(this).siblings('.cnnRSS').children();
rssList.push({
category: $(this).text(),
link: $(next).attr("href")
});
});
res.json(rssList);
} else {
res.statusCode = 404;
res.json({
status: 'error',
message: 'fail to request'
});
}
});
};
全站熱搜

留言列表
