我正准备编写我的第一个网络爬虫,看起来Anemone最有意义。内置了对 MongoDB 存储的支持,我已经在我的 Rails 应用程序中通过 Mongoid 使用 MongoDB。我的目标是存储爬取的结果,然后通过 Rails 访问它们。我有几个担忧:
1)在本页末尾,写着“注意:每个存储引擎都会在开始新的爬取之前清除现有的海葵数据。” 如果我使用默认内存存储,我希望这会在爬网结束时发生,但不应该将记录无限期地保存到 MongoDB,以便下次运行任务时不会爬网重复页面?如果它们在“开始新的爬网之前”被擦除,那么我应该在下一次爬网之前运行我的 Rails 逻辑吗?如果是这样,那么我最终将不得不检查之前抓取的重复记录。
2) 这是我第一次真正考虑在 Rails 模型的上下文之外使用 MongoDB。看起来记录是使用Page
类创建的,所以我以后可以像通常使用 Mongoid 一样查询这些吗?我想一旦它有一个提供花哨方法的 ORM,它就被认为是一个“模型”?