時,我有以下代碼:空體使用請求
var request = require('request');
var cheerio = require('cheerio');
var URL = require('url')
var fs = require('fs')
fs.readFile("urls.txt", 'utf8', function(err, data) {
if (err) throw err;
var urls = data.split('\n');
urls = urls.filter(function(n){return n});
for(var i in urls) {
request(urls[i], function(err, resp, body) {
if (err)
throw err;
$ = cheerio.load(body,{lowerCaseTags: true, xmlMode: true});
$('item').each(function(){
console.log("----------");
console.log($(this).find('title').text());
console.log($(this).find('link').text());
console.log($(this).find('pubDate').text());
});
}).end();
}
});
並從urls.txt文件我只有下面的網址:
http://www.visir.is/section/?Template=rss&mime=xml
當我使用wget在那個URL上我得到一個響應,看起來像一個rss feed,但是當我在上面的代碼中執行它時,它是空的。有人可以向我解釋爲什麼以及如何解決這個問題?
'.END()'是多餘的,你可以將其刪除,並檢查? – vmx
此外,請求操作是異步的,您的for循環可能無法按預期工作。使用[異步](https://github.com/caolan/async)模塊以適合的方式加載串聯/並行的url。 – vmx