【发布时间】:2017-08-01 23:58:19
【问题描述】:
在 CasperJS 中有一个名为 evaluate 的函数,它是一种进入页面并执行代码的方法,就像您使用浏览器控制台一样,如果我使用 setTimeout、setInterval 或其他异步函数,它不会像预期的那样工作。
StackOverflow 中的一些提问使用了等待函数,但是在evaluate 里面不能使用wait 函数。我需要使用 setTimeout,因为我正在抓取一个包含许多页面的网格,所以当我切换到下一页时,我需要等待几秒钟,这就是问题所在
【问题讨论】:
-
你试过“waitForSelector()”吗? docs.casperjs.org/en/latest/modules/casper.html#waitforselector
-
但这在评估函数中不起作用
-
如果打开下一页,任何运行的东西都会被处理掉,包括你的超时处理程序。这就是为什么抓取/导航过程的管理是在页面上下文之外而不是在内部完成的。你必须有不同的想法。
-
你是对的 Artjom,谢谢,好吧,我不知道该怎么处理这个问题,因为我不再需要 casperjs 来解决问题,我刚刚发现“pupperteer”它没有评估方法中的异步函数有问题
标签: casperjs