koeだめ 過去アーカイブ[〜2013-12-14]

最新情報は https://www.pixiv.net/fanbox/creator/3780274 にて

Rubyで複数並行なクローラをすっきりと書けるライブラリ「cosmicrawler」をgemとして公開した

http://rubygems.org/gems/cosmicrawler

ソースは、https://github.com/bash0C7/cosmicrawler

gem install cosmicrawlerするとか、Gemfileにgem 'cosmicrawler'と書いてbundle installするとかした後、

require 'cosmicrawler'

Cosmicrawler.http_crawl(%w(http://example.com/1 http://example.com/2)) {|request|
  get = request.get
  puts get.response if get.response_header.status == 200
}

という感じにブロックを渡すだけで、デフォルトでは8並行でババッとクロールすることができます。

もしもっと平行数を下げたい・あげたいならば、Cosmicrawler.http_crawlやCosmicrawler.eachの第二引数に数を指定してください。

内部実装としては、EM-Synchronyのこのへんのテクを活用していて、cosmicrawlerではEventMachineならではの操作を隠蔽して、すっきり書けることを目指しています。

手元では、Ruby1.9.3、Ruby2.0.0で動かしております。
是非お使いくださいませ。機能追加、リクエストなども絶賛募集中です。