如何在Rails应用程序中集成我自己的scraper?

时间:2014-02-19 09:49:12

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我刚刚创建了一个带有 app / models / post.rb 模型的Rails应用程序,并编写了一个刮刀 scrapers / base_scraper.rb (类 BaseScraper )将目标网站的数据收集到哈希变量数据。现在我想将数据值插入发布模型。如何在Rails中正确地完成它?我听说过关于Rake的问题,但不知道如何正确使用它。请帮帮我!

1 个答案:

答案 0 :(得分:6)

假设data只存储一个帖子,并且data哈希中存储的每个密钥都是有效Post字段(column_name),您可以这样做:

Post.create(data)

如果要从控制台启动整个过程,可以使用以下内容在流程的lib/tasks目录下创建rake任务:

# scraper.rake
namespace :scraper do
  desc "Run scraper"
  task :run => :environment do
    data = BaseScraper.your_collect_data_class_method
    Post.create(data) if data
  end
end

task :default => 'scraper:run'

然后从控制台运行它作为rake scraper

的rake任务

当然我也假设scrapers目录在你的Rails加载路径中。 如果没有,请将其添加到application.rb文件中。

# application.rb
...
module YourApp
  class Application < Rails::Application
    ...
    config.autoload_paths += Dir["#{config.root}/scrapers/"]
    ...
  end
end