2011-03-16 78 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。