我有一个nokigiri网络抓取工具,发布到我正在尝试发布到heroku的数据库。我有一个我想从数据库中提取的sinatra应用程序前端。我是Heroku和Web开发新手,并不知道处理这种事情的最佳方式。Heroku和Web抓取
我是否必须将上载到sinatra路径下的数据库的网页抓取脚本(如mywebsite.com/scraper)放到网上,并且使其变得如此晦涩以致没有人访问它?最后,我想让sinatra部分成为从数据库中提取的rest api。
感谢您的所有输入
我有一个nokigiri网络抓取工具,发布到我正在尝试发布到heroku的数据库。我有一个我想从数据库中提取的sinatra应用程序前端。我是Heroku和Web开发新手,并不知道处理这种事情的最佳方式。Heroku和Web抓取
我是否必须将上载到sinatra路径下的数据库的网页抓取脚本(如mywebsite.com/scraper)放到网上,并且使其变得如此晦涩以致没有人访问它?最后,我想让sinatra部分成为从数据库中提取的rest api。
感谢您的所有输入
您可以采取两种方法。
第一个是通过使用heroku run YOURCMD
通过控制台运行刮刀来使用一次性dynos。只要确保刮板不写入磁盘,但使用数据库。
的更多信息: https://devcenter.heroku.com/articles/one-off-dynos
二是刮刀和网络之间的过程中,你有正常的UI交互和刮刀的过程,网络过程中可以生成/谈话网络进程的方式区分。如果你采取这种方式,你应该怎么保护它免受世界其他地区的影响(auth/url混淆等)。
的更多信息: https://devcenter.heroku.com/articles/background-jobs-queueing
我做到了通过创建一个rake任务,并使用一次性DYNOS由四十二
这里提到的是我的耙子任务文件
require 'bundler/setup'
Bundler.require
desc "Scrape Site"
task :scrape, [:companyname] => :environment do |t, args|
puts "Company Name is :" + args[:companyname]
agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
puts "Agent (Mac Safari Created)"
# MORE SCRAPING CODE
end
你可以通过电话简单地运行它
heroku run rake scrape[google]
它取决于ho你经常想让它在某个特定的时间开火 - ? – iain
您的问题需要更多信息才能得到解答。你想从Heroku内抓取? /刮板的功能是什么,是否启动刮板脚本或检索刮掉的内容?您是否更关心如何保护http端点而不是如何在heroku上托管应用程序? –