読者です 読者をやめる 読者になる 読者になる

まめ畑

ゆるゆると書いていきます

Hpricotのメモ

Ruby Hpricot

Hpricotの個人的メモ
HpricotはHTMLをスクレイピングする時に使っていたけど、少し便利に書ける事を知った。


今までは、こんな感じでXPathで書いてた。

   hoge = Hpricot(open("http://www.example.com/"))
   piyo = (hoge/"/html/body/div[3]/div/div/h1").inner_text


でも、

   hoge = Hpricot(open("http://www.example.com/"))
   (hoge/":h1").each |i|
      i.inner_text
   end

   #こうすると3番目のh2タグが取れる
   (hoge/:h2)[3]

みたいに書ける。

:h1や:h2と書くとその要素全ての配列が返ってくる。

div.hoge
で<div class="hoge">

div#piyo
で<div id="piyo">

と指定出来る。

他にも
:title :body などがある。

なるほど。
div.hogeは便利だな。
a.hoge
みたいに、divじゃ無くても使えるし。


他には。
(hoge/div.piyo)とすると要素が1つでも配列が返ってくるので、例えばhrefを取得するには、

(hoge/div.piyo)[0][:href]

とする。


こういうのがあったとは、知らなかった。

おまけ

昨日から、ニコニコ動画でユーザ生放送が始まったので、放送開始をお知らせするBotを作った。
しかし、既に存在している事を教えてもらった><、
残念・・・。


既にあったもの
http://twitter.com/niconicolive


今回作った物
http://twitter.com/nico_live