2017-03-22 3 views
0

私はすべてのURLをウェブサイトから掻き出して配列に入れようとしています。配列インデックスについて質問があります。配列[2]に2のようなインデックス番号を追加すると、コマンドラインは "undefined"と応答します。インデックスを削除して配列全体を印刷すると、すべてのURLが1行ずつ表示されます。私は、各URLになりたい、独自のインデックスのような:WebページのURLをNode.jsで掻き立てる

  • などまずURLは= 2番目のURLは
  • 配列[2] = Thirs URLを発見した[1]
  • 配列が見つかっ見つかり= [0]配列

誰かが正しい方向に向いていますか?ありがとうございました。

var request = require('request'); 
    var cheerio = require('cheerio'); 

    var url = 'http://www.hobo-web.co.uk/'; 

    request(url, function(err, resp, body){ 
     $ = cheerio.load(body); 
     links = $('a'); //use your CSS selector here 
     $(links).each(function(i, link){ 
     var array = $(link).attr('href'); 
     console.log(array[2]); 

     }); 
    });`` 

答えて

1

最初はそれにhrefの値をプッシュし続ける、その後、.eachループ内の変数にアクセス可能として配列を作成する必要があります。

var request = require('request'); 
var cheerio = require('cheerio'); 

var url = 'http://www.hobo-web.co.uk/'; 

var array = []; 

request(url, function(err, resp, body){ 
    $ = cheerio.load(body); 
    links = $('a'); 
    $(links).each(function(i, link){ 
    var href = $(link).attr('href'); 
    array.push(href); 
    }); 
}); 
+0

配列は、それが有効であることがわかっている唯一の場所であるため、あなたが持っている場所ではなく、コールバック関数内で宣言することができます。また、 '$'と 'links'を宣言する必要があります。 – jfriend00

+0

ありがとうございます!正確に私が必要としたもの –

関連する問題