2016-06-24 22 views
2

ページをリダイレクト:スクレイプは、それが終了した後、ページの読み込み/質問に

http://watch2gether.com/go#<link> 

私はそれが完全にロードされ、その最終的な宛先にリダイレクトされた後、このページをこすりできるようにする必要があります。しかし、それはそれぞれのhrefの値を返します

var searchTerm = 'https://www.youtube.com/watch?v=link'; 
var url = 'https://www.watch2gether.com/go#' + searchTerm; 

request(url, function(err, resp, body){ 
    $ = cheerio.load(body); 
    links = $('link'); //use your CSS selector here 
    $(links).each(function(i, link){ 
    sleep.sleep(2); 
    console.log($(link).text() + ':\n ' + $(link).attr('href')); 
    }); 
}); 

: 私はページをこすりしようとする要求とチェリオを使用している、と私はこれでsuccessfuly持っている:私の質問に詳しく説明するために今すぐ

、実際にページがロードされて最終ページにリダイレクトされる前に、http://watch2gether.com/rooms/

の代わりに2番目のページがロードされるので、実際には2番目のページをスクラップすることができます最初のものの代わりに?

答えて

0

最初のページが要求された後に2ページ目が読み込まれるだけなので、最初のページではなく2ページ目のページをスクラップするにはどうすればよいですか?

私はあなたの質問のこの部分を完全に理解していませんでした。しかし、私はあなたが経験しているのはJavaScriptの非同期性だと思います。

あなたはジャバスクリプトの

$(リンク).each(関数(I、リンク){ここ //あなたのコードを追加 })

非同期性質は、すべてのフェッチありません$( 'links')上のあなたのCSSセレクタに従ったリンク。すべてのリンクをロードした後、残りのコードの実行を開始し、それに応じてリダイレクト/リダイレクトを行います。

javascriptのイベントループまたは非同期性を確認してください。

関連する問題