插入 Rails 数据库

发布于 2024-10-22 05:25:11 字数 130 浏览 1 评论 0原文

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

I'm new to Ruby on Rails and wanted to create a crawler that scrapes data and inserts it into the database. I'm currently using Heroku so I can't access the database directly and was wondering what the best way to integrate a crawler script into the RoR framework would be. I would be using an hourly or daily cron to run the script.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不知在何时 2024-10-29 05:25:11

如果您在 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])

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

If you are using Rails on Heroku you can just use an ORM adapter like Datamapper or ActiveRecord. This then gives you access to your database but through a layer basically. If you need to send raw sql to the database you can but it's usually not recommended since the ORM's provide pretty much everything you need.

You would basically just create models within your rails application like normal and the associated fields in a table.

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

Then in your crawler script you can create records by just using your model...

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

Normally you can use Whenever(https://github.com/javan/whenever) to manage your cronjobs but on Heroku I'm not sure how it works since I haven't set any up on Heroku before.

吖咩 2024-10-29 05:25:11

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

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

  2. 如果您还使用 Rails 来提供 Web 应用程序服务,请使用计算机的主机文件,以便该计算机上的 wget (或类似文件)能够正确地将请求映射到该 Rails 实例;从那里,只需将其设置为 Web 应用程序,然后在 CRON 中使用 wget 命令即可。效率不是很高,但如果您只是在现有设置的基础上寻找快速而肮脏的东西,那会很好用。只需确保将 STDOUTSTDERR 发送到 /dev/null,这样您就不会最终积累 CRON 文件。

I'd suggest 1 of 2 options:

  1. Use a ruby script that uses require rubygems along with other helper libraries (like Rails, ActiveRecord, whatever) you want to accomplish the task, and then cron that script.

  2. If you're using Rails to also serve web apps, use the machine's hosts file so that a wget (or similar) on that machine will properly map requests to that instance of rails; from there, just set it up as a web app, and use the wget command in your CRON. Not terribly efficient, but if you're just looking for something quick and dirty based on an existing setup, that would work nicely. Just make sure to send STDOUT and STDERR to /dev/null so you don't end up amassing CRON files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文