無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Hpricotでスクレイピング

Hpricotでスクレイピングします。

インストール

gem install hpricot

hpricotはCで書かれた拡張ライブラリを使用しています。Cygwin環境だけかもしれませんが、インストール時に環境に合わせてコンパイルされるため、makeやgccが必要でした。

使ってみる

データ(data.html):

<html>
<head></head>
<body>
  <ul id="a" class="x">
    <li>mii</li>
    <li>tora</li>
  </ul>
  <ul id="b" class="y">
    <li>kuro</li>
    <li>shiro</li>
  </ul>
</body>
</html>

ちょっと謎っぽいコードですが、「/」が要素を探す関数で、「"ul"」がその引数、戻り値は配列の派生クラスです。Hpricot()関数でデータをロードして検索します。検索結果のノードに対して、さらに検索を行うこともできます。

サンプル:

require 'rubygems'
require 'hpricot'

File.open( "./data.html", "r" ) { |f|
  doc = Hpricot(f)
  (doc/"ul").each { |ul|
    (ul/"li").each { |li| puts li.inner_text  }
  }
}

出力:

mii
tora
kuro
shiro

セレクタは、XPathCSSが使えます。

サンプル:

# XPathで選択
File.open( "./data.html", "r" ) { |f|
  doc = Hpricot(f)
  (doc/"ul[@id='a']/li").each { |li|
    puts li.inner_text
  }
}
puts "----"
# CSSで選択
File.open( "./data.html", "r" ) { |f|
  doc = Hpricot(f)
  (doc/"ul#a li").each { |li|
    puts li.inner_text
  }
}

出力:

mii
tora
----
mii
tora


Hpricot A Fast, Enjoyable HTML Parser for Ruby
RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize