我正在废弃动态分页的网站,这些网页是使用js加载的,无法通过网址访问。
我需要从每个页面中提取信息,将其打印到stdout,转到下一页并重复此过程。
要加载页面,需要进行昂贵的设置过程。
在不重复设置的情况下执行此操作的最简单方法是使用递归函数作为运行回调,检查是否存在下一页以及是否结束该过程。
这样的事情:
function extractInfoAndGoToNextPage(err, nightmareInstance){
function isThereNextPage(result){
if(!result) process.end()
}
nightmareInstance.evaluate(extractInfo, printInfo)
.exists(nextPageSelector, isThereNextPage)
.click(nextPageSelector)
.wait()
.run(extractInfoAndGoToNextPage)
}
new Nightmare().goto(website)
...setup process...
.run(extractInfoAndGoToNextPage)
问题是在运行后,实例似乎处于松散状态。
如何在不需要为每个页面设置实例的情况下一次提取一页信息?