我在casperJS中构建了一个刮刀,用于从Google+信息页中删除数据。它的工作非常出色。
现在我希望能够在我的nodeJS服务器中添加API GET
调用,该调用将获取该数据并以JSON格式返回。
除了测试场景here之外,我没有找到任何关于如何完成此操作的文档或内容。还有spookyJS,但它在9个月内没有更新,人们说它很破碎。
非常感谢任何有关实现这一目标的指导。
答案 0 :(得分:1)
如果您不想使用SpookyJS,那么另外几个选项是spawn来自node.js的新进程。
虽然,我不认为,为每个API请求生成带有底层PhantomJS的CasperJS实例是个好主意。这将大大减慢您的API。您可能希望将已删除的数据缓存在文件或数据库中,并在必要时进行更新。请求立即返回,但您可以提供旧数据。这取决于您的更新间隔。
我提出了两种替代方法:
使用node-cron重复运行casper scraper并收集信息。根据需要选择更新间隔。
您收到请求并回复缓存/保存的数据。但是你也可以使用setTimeout(runScraper, 0);
生成刮刀,将其从请求处理中分离出来。请求立即返回,刮刀在事后运行。它可能会更新数据。如果您收到太多请求,则可能需要在一段时间后再次运行刮刀。