2016-07-13 1 views
0

Facebookのビデオページをスクラップする必要がありますが、「詳細をロード」ボタンはAjaxにあります。 私はPhantomJSを使用してボタンをクリックしようとします。ファントムJSもっと多くの要素をロードする

しかし、ボタンを何度もクリックする必要があります。

だからこれは私のコードです:

var page = require('webpage').create(); 

page.open("https://www.facebook.com/MisterVOnline/videos", function(status) { 
    if (status === "success") { 
     page.evaluate(function() { 
      while(document.querySelector(".uiMorePagerPrimary")){ 
       document.querySelector(".uiMorePagerPrimary").click(); 
       window.setTimeout(function() { 
       }, 5000); 
      } 
     }); 
     window.setTimeout(function() { 
      //console.log(page.content); 
      page.render('facebook.jpeg'); 
      phantom.exit(); 
     }, 5000); 
    } 
}); 

whileループせずに、彼は良い負荷をしたときのコードは動作しません...

私は、誰かが私を助けることができることを願っています!

答えて

0

問題は解決: 使用のsetInterval代わりにwhileループ:

var myTime = setInterval(function(){ 
    if(document.querySelector(".uiMorePagerPrimary")!=null) 
    { 
     nbTry=0; 
     document.querySelector(".uiMorePagerPrimary").click(); 
    } 
    else 
    { 
     nbTry++; 
    } 
    if(nbTry>5) 
    { 
     clearInterval(myTime); 
     window.callPhantom({ exit: true }); 
    } 
}, 500); 
関連する問題