I need to scrap Facebook video page but the "load more button" is in Ajax. So I try to use PhantomJS to click on the button.
But, I need to click many times on the button.
So this is my code :
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);
}
});
The code does not work when without the while loop, he made a good load...
I hope that someone could help me !
Problem solved : use setInterval instead while loop :
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);