MAO-EYE 2016-07-13 09:59 采纳率: 100%
浏览 37

Phantom JS加载更多元素

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 !

  • 写回答

1条回答 默认 最新

  • lrony* 2016-07-13 15:23
    关注

    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);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计