【问题标题】:Insert into Rails Database插入 Rails 数据库
【发布时间】:2011-07-16 23:41:29
【问题描述】:

我是 Ruby on Rails 的新手,想创建一个抓取数据并将其插入数据库的爬虫。我目前正在使用 Heroku,因此无法直接访问数据库,并且想知道将爬虫脚本集成到 RoR 框架的最佳方法是什么。我会使用每小时或每天的 cron 来运行脚本。

【问题讨论】:

    标签: ruby-on-rails ruby database heroku insertion


    【解决方案1】:

    如果您在 Heroku 上使用 Rails,您可以只使用 ORM 适配器,如 Datamapper 或 ActiveRecord。然后,这使您可以访问您的数据库,但基本上是通过一个层。如果您需要将原始 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])
    

    通常你可以使用 When(https://github.com/javan/whenever) 来管理你的 cronjobs 但在 Heroku 上我不确定它是如何工作的,因为我之前没有在 Heroku 上设置过任何东西。

    【讨论】:

      【解决方案2】:

      我建议 2 个选项中的 1 个:

      1. 使用一个 ruby​​ 脚本,该脚本使用 require rubygems 以及您想要完成任务的其他帮助程序库(如 Rails、ActiveRecord 等),然后 cron 该脚本。

      2. 1234563从那里,只需将其设置为 Web 应用程序,然后在 CRON 中使用 wget 命令。效率不是很高,但如果您只是在现有设置的基础上寻找快速而肮脏的东西,那会很好用。只需确保将 STDOUTSTDERR 发送到 /dev/null,这样您就不会最终积累 CRON 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多