gpt4 book ai didi

javascript - 如何使用 phantomjs 连续单击 "Load More"按钮直到页面完全填充?

转载 作者:行者123 更新时间:2023-11-30 21:04:33 26 4
gpt4 key购买 nike

我是学习 phantomjs 和 casperjs 的新手,正在寻找一些关于如何单击“加载更多”按钮以完全填充页面的指示。我查看了类似的问题,但没有看到任何匹配的内容(至少我不理解)。这个想法是从 livestream.com 事件页面中收集观众人数。

首先,我可以用 phantomjs(以 cnet 为例)抓取纯文本的第一页,如下所示:

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

page.open('http://livestream.com/cnet', function() {
console.log(page.plainText);
phantom.exit();
});

不过,还有相当多的其他事件列表需要单击“加载更多”。我想使用以下伪代码扩展上面的代码来执行此操作:

while ("Load More" exists) {
click button
delay to allow page to load
}

检查上面 url 上的按钮元素,我发现了以下内容:

<a href="javascript:void(0);" class="button thin_border_button black_border small_button ng-binding" ng-click="loadMoreEventsPublic('Archived')" ng-bind="loadMoreText">Load More</a>

如何重复点击(即 ng-click="loadMoreEventsPublic('Archived')")直到页面完全加载然后退出 phantomjs?

在 casperjs 中这样做是否更有意义?

请原谅我极端的菜鸟水平,我正在尽我所能解决这个问题,但我需要一些指导。

谢谢!

最佳答案

你可以像下面的骨架一样编写自己的实现

function onLoadMoreLinkExists(){
casper.click("load more link selector");
casper.then(function(){
casper.waitFor("load more link selector", onLoadMoreLinkExists, afterAllLoad);
});
}

function afterAllLoad(){
// what to do once after all lazy load content loaded
}

casper.waitFor("load more link selector", onLoadMoreLinkExists
}, afterAllLoad);

我之前做过这样的实现,效果很好。

关于javascript - 如何使用 phantomjs 连续单击 "Load More"按钮直到页面完全填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46780733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com