我有一个nokigiri Web刮板,它会发布到我要发布到heroku的数据库中。我有一个想要从数据库中提取的sinatra应用程序前端。我是Heroku和Web开发的新手,并且不知道处理此类问题的最佳方法。

我是否必须将上传到数据库的网络抓取脚本放置在sinatra路由下(例如mywebsite.com/scraper),并且使其变得如此晦涩,以至于没有人访问它?最后,我想让sinatra部分成为从数据库中提取的rest api。

感谢您的所有输入

最佳答案

您可以采用两种方法。

第一个是通过使用heroku run YOURCMD在控制台上运行刮板来使用一次性dynos。只要确保刮板不写入磁盘而是使用数据库即可。

更多信息:
https://devcenter.heroku.com/articles/one-off-dynos

第二个区别是,您具有用于常规UI交互的Web流程和该Web进程可以生成/与之对话的Scraper进程,从而区分了scraper和Web进程。如果您采用此路线,则取决于您如何保护它免受世界其他地区的影响(身份验证/网址混淆等)。

更多信息:
https://devcenter.heroku.com/articles/background-jobs-queueing

关于ruby - Heroku和Web抓取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17605833/

10-09 17:53
查看更多