今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

(小ネタ)Hpricotを使って人狼BBSの参加者リストを作成する。

人狼BBSのアクティブユーザー、ヘビーユーザーの割合が知りたかったので
参加者リストを取得しIDを抜き出すスクリプトを作成しました。

require 'hpricot'
require 'open-uri'

#uptoメソッドetcを使用して繰り返し実行(今はしない)
#501.upto(1300) do |i|
doc = Hpricot(open(%Q[http://ninjin002.x0.com/wolff/index.rb?vid=1132]))

#エピローグのURLを取得
elem = (doc/%Q[//a]).each do |elem|
  @url = "http://ninjin002.x0.com/wolff/" + elem.to_html.sub(%Q[<a href="],"").sub(%r/">.*/,"") if elem.inner_text == "エピローグ"
end

#エピローグにアクセスし、参加者リストを取得
#http://ninjin002.x0.com/wolff/index.rb?vid=1132&meslog=1132_party_6
doc = Hpricot(open(@url))
elem = (doc/%Q[div.announce]).each do |elem|
  @entry = elem.inner_text if elem.inner_text =~ /^楽天家 ゲルト/
end

#参加者リストをパースしてIDを抜き出す
puts @entry.scan(%r[(.*?)])

作成時間30分(これでも遅いと思う)。マジHpricotは神だなー。
あとはDBに入れて見せ方を考えればOK。