Node.js は初めてです。いくつかの Web サイトから Web ページのタイトルを取得するために、zombie.js を使用しています。以下は私のコードです:
var Browser = require("zombie");
var util = require("util");
halt = require('delayed');
title = [];
url = [ 'http://www.apple.com', 'http://www.microsoft.com', 'http://www.dell.com' ];
function getTitles(url){
//console.log('Start scraping title');
var length = url.length;
console.log('Total Site to Scrape: '+length);
label = 1;
for(var i=0;i<length;i++){
browser = new Browser()
browser.runScripts = false
browser.setMaxListeners(0);
browser.visit(url[i], function(e, browser, status, errors) {
browser.wait(function(){
title[i] = browser.text('html > head > title');
console.log(label+': '+title[i]);
browser.close();
label++;
});
});
};
}
getTitles(url);
halt.delay(function () {
console.log('Array Length: '+title.length)
console.log('Array Content: '+title)
}, 10)
以下はコードの出力です。
Total Site to Scrape: 3
1: Apple
2: Dell Official Site - The Power To Do More | Dell
3: Microsoft Home Page | Devices and Services
Array Length: 4
Array Content: ,,,Microsoft Home Page | Devices and Services
私が理解していない部分:
- 配列の長さが 3 ではなく 4 を返すのはなぜですか? URLが3つしかない
- 配列の内容が最後の要素のみを返すのはなぜですか? 他の 2 つの欠落している要素はどこにありますか?