スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tag:スポンサー広告 

【Ruby】クローラーフレームワークAnemoneのStorageにMongoDBを使う

お久しぶりです。

自社サイトのリニューアルに集中して、すっかりアウトプットを怠ってしまっていました。
友人に生きてるのかと心配されるほど静かでしたが

生きています。息してます。

もうブログの更新も1ヶ月とまっていたんですね

さて、今回は前回のエントリ【Ruby】サイトをクロールするライブラリAnemoneをインストールして動かしてみる (07/26)でも紹介したAnemoneについて書きたいと思います。

以前紹介したデフォルトの方法だとクロールしている過程のデータ(ページの内容とかURLとか)はメモリ、つまり普通のハッシュにのせて処理を進めていきます。

クロールするページが増えれば増えるほどメモリリソースを使ってしまって途中でプロセスがささるという現象にたびたび困っていました。

Anemoneに処理の内容を別のストレージ(mongodbやtokyocabinetなど)を利用することが出来るみたいです。

以下にCentOSにmongodbをインストールして、anemoneからmongodbを利用するまでの方法を書きのこしていきます。

MongoDBのインストール

yumレポジトリを追加
sudo vi /etc/yum.repos.d/CentOS-Base.repo

こんな設定

[10gen]
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/$basearch/
gpgcheck=0
enabled=1


インストール
sudo yum install mongo-stable*

mongodの起動
/etc/init.d/mongod start

参考:CentOS5.5にMongoDBをインストールしてみる

AnemoneでMongoDBを使う



require 'rubygems'
require 'anemone'

Anemone.crawl("http://test.example.com/") do | anemone |
anemone.storage = Anemone::Storage.MongoDB
anemone.on_every_page do |page|
puts page.url
end
end


anemone.storage = Anemone::Storage.MongoDB

mongodbを起動してこの1行追加するだけで大丈夫です。

この方法でプロセスがささる現象は回避できました。
スポンサーサイト
テーマ : プログラミング
ジャンル : コンピュータ

Tag:Ruby  Trackback:0 comment:0 

プロフィール

6rats

Author:6rats
こんにちは、ITベンチャーで働くエンジニアです
主に自分の周りで起きた技術的なことをメモとして書き残して行きます。
Android以外にもRuby/Ruby on RailsやFuelPHPなどなどたまにやります。基本的なスタンスとしては興味があるもしくは必要になったらいろんなことにチャレンジします。
最近はiOSアプリ開発を始めています。

購読
follow us in feedly
個人プロダクト

Androidアプリ

Twitterクライアント

Webアプリケーション

EcPriceWatch(Amazon価格の推移を計測、最安値を知らせるサービス)
Google AdSense
ブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。