如何将数据从casperJS传递到nodeJS?
我在casperJS中构build了一个刮板,用于从Google+页面中提取数据。 它工作出色。
现在我想能够在我的nodeJS服务器中添加一个API GET
调用,它将抓取这些数据并以JSON格式返回。
除了在这里的testing场景,我没有find任何关于如何完成这个任务的文档或内容。 还有一些鬼怪 ,但在9个月内还没有更新,人们都说它很破碎。
任何指导,使之成为可能将不胜感激。
如果你不想使用SpookyJS,那么其他的select就是从node.js中产生一个新的进程。
虽然,我不认为,为每个API请求生成带有底层PhantomJS的CasperJS实例是一个好主意。 这会大大减慢您的API。 您可能想要将抓取的数据caching在文件或数据库中,并在需要时进行更新。 请求立即返回,但您可以提供旧数据。 这取决于您的更新间隔。
我提出了两种替代方法:
-
用node-cron重复运行casper scraper并收集信息。 根据您的需要select更新间隔。
-
您收到一个请求,并回应caching/保存的数据。 但是你也可以用
setTimeout(runScraper, 0);
产生刮板setTimeout(runScraper, 0);
将其从请求处理中分离出来。 请求立即返回,刮板运行后的事实。 它可能会更新数据。 如果您收到太多请求,您可能需要再次在一定的冷却时间后运行刮刀。