如何在节点上使用噩梦制作条件循环点击事件?
how to make conditional loop click event with nightmare on node?
我正准备制作网络爬虫。
所以我正在使用节点+噩梦。
我要抓取的网页有 'load more' 按钮。
当我单击此按钮时,会像任何其他网页一样加载更多帖子。
问题是 - 此页面上的帖子数量可能会发生变化。所以我的爬虫应用程序不知道按了多少次 'load more' 按钮。
我知道噩梦中有一个 'exist' apu,但我想有条件地重复使用它,而不是一次或固定数字循环。
我可以使用这个案例有什么逻辑吗?
有人帮帮我 T_T
你可以看看我的回答
您可以使用与以下代码相同的代码:
function next() {
if(condition)
BETHESDA.wait('div[data-is="main-mods-pager"] > button')
.click('div[data-is="main-mods-pager"] > button')
.then(function() {
console.log("click done");
next();
})
.catch(function(err) {
console.log(err);
console.log("All done.");
});
}
function condition() {
//Your condition code goes here
//return true or false
}
我认为这应该是一个重复的问题。
我正准备制作网络爬虫。 所以我正在使用节点+噩梦。
我要抓取的网页有 'load more' 按钮。 当我单击此按钮时,会像任何其他网页一样加载更多帖子。
问题是 - 此页面上的帖子数量可能会发生变化。所以我的爬虫应用程序不知道按了多少次 'load more' 按钮。
我知道噩梦中有一个 'exist' apu,但我想有条件地重复使用它,而不是一次或固定数字循环。
我可以使用这个案例有什么逻辑吗? 有人帮帮我 T_T
你可以看看我的回答
您可以使用与以下代码相同的代码:
function next() {
if(condition)
BETHESDA.wait('div[data-is="main-mods-pager"] > button')
.click('div[data-is="main-mods-pager"] > button')
.then(function() {
console.log("click done");
next();
})
.catch(function(err) {
console.log(err);
console.log("All done.");
});
}
function condition() {
//Your condition code goes here
//return true or false
}
我认为这应该是一个重复的问题。