如何将数据从casperJS传递到nodeJS?

时间:2014-07-12 17:23:50

标签: node.js phantomjs v8 casperjs qtwebkit

我在casperJS中构建了一个刮刀,用于从Google+信息页中删除数据。它的工作非常出色。

现在我希望能够在我的nodeJS服务器中添加API GET调用,该调用将获取该数据并以JSON格式返回。

除了测试场景here之外,我没有找到任何关于如何完成此操作的文档或内容。还有spookyJS,但它在9个月内没有更新,人们说它很破碎。

非常感谢任何有关实现这一目标的指导。

1 个答案:

答案 0 :(得分:1)

如果您不想使用SpookyJS,那么另外几个选项是spawn来自node.js的新进程。

虽然,我不认为,为每个API请求生成带有底层PhantomJS的CasperJS实例是个好主意。这将大大减慢您的API。您可能希望将已删除的数据缓存在文件或数据库中,并在必要时进行更新。请求立即返回,但您可以提供旧数据。这取决于您的更新间隔。

我提出了两种替代方法:

  1. 使用node-cron重复运行casper scraper并收集信息。根据需要选择更新间隔。

  2. 您收到请求并回复缓存/保存的数据。但是你也可以使用setTimeout(runScraper, 0);生成刮刀,将其从请求处理中分离出来。请求立即返回,刮刀在事后运行。它可能会更新数据。如果您收到太多请求,则可能需要在一段时间后再次运行刮刀。