ちょっとメモ的に。
■使う物
Anemone rubyで作られたオープンソースのWebクローラー。
parseする時にNokogiriを使うので別途インストールが必要。
Redis
オンメモリで動く超高速なNOSQLのKVSのストレージ。
Herokuでも動く。
■Macでインストール
Nokogiri
Macportでインストール失敗したライブラリをHomebrewで入れる。
sudo port -d selfupdateしてもsudo port syncしてもダメだった。brew install libxml2 libxslt
sudo port install nokogiri
Anemone
gem install anemone
Redis
・macportを最新にする。 sudo port -d sync
sudo port -d selfupdate
・Xcodeを起動して、メニューバーの「Xcode」→「Preferences」→「Downloads」から「Command Line Tools」をインストール。
・Redisインストール
sudo port install redis
・サービスに登録
・Ruby用ライブラリをインストールsudo launchctl load -w /Library/LaunchDaemons/org.macports.redis.plist
sudo gem install redis
Nokogiri
gem install nokogiriAnemone
gem install anemoneRedis
RedisのWindows用インストーラをDLして入れるだけ。
■まとめ
Anemoneを使うと、クロールしたページの情報をメモリに保持するため、あっという間にメモリ不足で落ちる。
感覚的にはデフォルトで数百ページ程度。
Redisはクロールした情報をメモリではなくMongoDBやRedisに保持することができるため、あらかじめRedisをインストールしておく。
Redisもオンメモリだからあまり変わらない気がするけど。