首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >插入到Rails数据库中

插入到Rails数据库中
EN

Stack Overflow用户
提问于 2011-03-17 06:05:00
回答 2查看 2.9K关注 0票数 0

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

EN

回答 2

Stack Overflow用户

发布于 2011-03-17 07:01:32

如果你在Heroku上使用Rails,你可以只使用像Datamapper或ActiveRecord这样的对象关系映射适配器。这样你就可以访问你的数据库了,但基本上是通过一个层。如果您需要将原始sql发送到数据库,您可以这样做,但通常不建议这样做,因为ORM提供了几乎所有您需要的东西。

基本上,您只需在rails应用程序中创建类似于normal的模型和表中的相关字段即可。

代码语言:javascript
运行
复制
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

然后在你的爬虫脚本中,你可以只使用你的模型来创建记录...

代码语言:javascript
运行
复制
Page.create(:title => crawler[:title], :meta_title => crawler[:meta_title])

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

票数 2
EN

Stack Overflow用户

发布于 2011-03-17 06:20:03

我建议两个选项中的一个:

  1. 使用ruby脚本,该脚本使用require rubygems和其他想要完成任务的辅助程序库(如Rails、ActiveRecord等),然后执行该脚本。
  2. 如果您使用Rails同时提供web应用程序,请使用机器的hosts文件,以便该计算机上的wget (或类似文件)可以正确地将请求映射到该rails实例;然后,只需将其设置为web应用程序,然后在您的CRON中使用wget命令。效率不是很高,但如果您只是想在现有设置的基础上寻找一些快速而粗糙的东西,那将会很好地工作。只需确保将STDOUTSTDERR发送到/dev/null,这样您就不会堆积CRON文件。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5332408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档