うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

rubyでクロールしてみたいので数分でやってみた

スポンサーリンク

Anemoneつかうと簡単にできるそう。

インストール。

gem install anemone

使ってみます。このブロクのアーカイブをみてみるテスト… (参考ページとほとんどコード変えてませんが。)

# -*- coding: utf-8 -*-

require 'anemone'

URL = 'http://konbu13.hatenablog.com/'
REGEXP = /archive/

Anemone.crawl(URL) do |anemone|

  # クロールするごとに呼び出される
  anemone.focus_crawl do |page|

    # 条件に一致するリンクだけ残す
    # この `links` はanemoneが次にクロールする候補リスト
    page.links.keep_if { |link|
      link.to_s.match(REGEXP)
    } 

  end

  # ここがメインの部分
  anemone.on_every_page do |page|

    # クロールした場所のタイトルを出力
    p page.doc.at('title').inner_html
  end
end

結果(windowsコマンドプロンプト)。

f:id:konbu13:20140406223541j:plain

こんな簡単にクロール出来てしまうとは! 5分で遊べますね(^^♪

関係ない話

emacsのeshellでrubyの出力を出そうとすると、文字化けします。pで出力すると\u***の形式で、putsだと文字化け。どうやったらいいのだろうか…rubyは文字化けでしょっちゅう悩まされます。