Вам необходимо настроить класс Page, чтобы он не сохранял дополнительные данные.Так что-то вроде:
module Anemone
class Page
def to_hash
{'url' => @url.to_s,
'links' => links.map(&:to_s),
'code' => @code,
'visited' => @visited,
'depth' => @depth,
'referer' => @referer.to_s,
'fetched' => @fetched}
end
def self.from_hash(hash)
page = self.new(URI(hash['url']))
{'@links' => hash['links'].map { |link| URI(link) },
'@code' => hash['code'].to_i,
'@visited' => hash['visited'],
'@depth' => hash['depth'].to_i,
'@referer' => hash['referer'],
'@fetched' => hash['fetched']
}.each do |var, value|
page.instance_variable_set(var, value)
end
page
end
end
end
Anemone.crawl("http://www.example.com/") do |anemone|
anemone.storage = Anemone::Storage.MongoDB
end
Прошло много времени с тех пор, как я посмотрел на внутренности, но если я правильно помню, страница должна содержать ссылки, глубину, выборку и некоторые другие метаданныепоэтому он знает, что он уже сканировал и что ему оставалось делать.
Надеюсь, это поможет.