【发布时间】:2012-02-24 06:10:20
【问题描述】:
我正准备编写我的第一个网络爬虫,看起来Anemone 最有意义。有built in support for MongoDB storage,我已经在我的 Rails 应用程序中通过 Mongoid 使用 MongoDB。我的目标是存储爬取的结果,然后通过 Rails 访问它们。我有几个担忧:
1) 在this page 的末尾,它说“注意:每个存储引擎都会在开始新的抓取之前清除现有的 Anemone 数据。” 我如果我使用默认内存存储,会期望在爬网结束时发生这种情况,但不应该将记录无限期地持久保存到 MongoDB,以便下次运行任务时不会爬网重复页面?如果它们被擦除“在开始新的爬网之前”,那么我应该在下一次爬网之前运行我的 Rails 逻辑吗?如果是这样,那么我最终将不得不检查之前抓取的重复记录。
2) 这是我第一次真正考虑在 Rails 模型的上下文之外使用 MongoDB。看起来记录是使用 Page 类创建的,所以我以后可以像通常使用 Mongoid 一样查询这些吗?我想一旦它有一个提供花哨方法的 ORM,它就被认为是一个“模型”?
【问题讨论】:
标签: mongodb ruby-on-rails-3.1 mongoid web-crawler anemone