2011-03-16 75 views
0

我是Ruby on Rails的新手,想要創建一個抓取數據並將其插入數據庫的抓取工具。我目前正在使用Heroku,因此我無法直接訪問數據庫,並想知道將爬蟲腳本集成到RoR框架中的最佳方式是什麼。我將使用每小時或每日cron來運行腳本。插入Rails數據庫

回答

0

我建議1 2的選項:

  1. 使用了一個require rubygems你想要完成的任務,其他輔助庫(不管喜歡的Rails,ActiveRecord的),然後沿cron的Ruby腳本那個腳本。

  2. 如果您使用Rails還提供Web應用程序,請使用計算機的hosts文件,以便該計算機上的wget(或類似)將正確地將請求映射到該實例的rails;從那裏,只需將其設置爲一個Web應用程序,並在您的CRON中使用wget命令。效率不是非常高,但如果您只是在現有設置的基礎上尋找快速和骯髒的東西,那很好。只需確保將STDOUTSTDERR發送到/dev/null,這樣您就不會累積CRON文件。

2

如果你在Heroku上使用Rails,你可以使用像Datamapper或ActiveRecord這樣的ORM適配器。這樣可以讓你訪問你的數據庫,但通過一個圖層基本上。如果您需要將原始SQL發送到數據庫,您可以但通常不推薦使用,因爲ORM提供了幾乎所有您需要的東西。

你基本上只需在你的rails應用程序中創建模型,就像普通表格和表格中的相關字段一樣。

rails g model page meta_title:string page_title:string 

rake db:migrate # This has to be run on heroku too "heroku rake db:migrate" after you have pushed your code up 

然後在你的履帶式腳本,你可以只用你的模型創建記錄......

Page.create(:title => crawler[:title], :meta_title => crawler[:meta_title]) 

通常情況下,你可以使用每當(https://github.com/javan/whenever)至管理你的cronjobs,但在Heroku我不確定它是如何工作的,因爲我之前沒有設置過Heroku。