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

我在casperJS中构build了一个刮板,用于从Google+页面中提取数据。 它工作出色。

现在我想能够在我的nodeJS服务器中添加一个API GET调用,它将抓取这些数据并以JSON格式返回。

除了在这里的testing场景,我没有find任何关于如何完成这个任务的文档或内容。 还有一些鬼怪 ,但在9个月内还没有更新,人们都说它很破碎。

任何指导,使之成为可能将不胜​​感激。

如果你不想使用SpookyJS,那么其他的select就是从node.js中产生一个新的进程。

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

我提出了两种替代方法:

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

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