我正在废弃一个动态分页的网站,页面是使用 js 加载的,无法通过 url 访问。
我需要从每一页中提取信息,将其打印到标准输出,转到下一页并重复该过程。
要加载页面,需要进行昂贵的设置过程。
在不重复设置的情况下执行此操作的最简单方法是使用递归函数作为运行回调,它检查是否有下一页以及它是否没有结束进程。
像这样的东西:
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)
问题是在运行之后实例似乎处于松散状态。
如何一次提取一页信息,而不需要为每一页设置实例?