我有一個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上託管應用程序? –