2010-01 << 2010-02 >> 2010-03

2010-02-16 (火)

*ruby

とりあえず,書きたいものが書ける程度にはなった.次はrubyらしく書けるようになろう.

やっぱり,do~endとかよりCライクな{~}の方が好きだなぁ.doが無かったりすると,endに対応する語が何なのかrubyを良く知らないと分かりにくい.まぁ,きれいにインデントされていれば問題ない気もしますが.

*みずほダイレクトをスクレイピング

なんとか,ログインまでたどり着いた.ちゃんとログアウトしなかったり,変な操作をすると,10分間ログインできなくなったりするので要注意です.

URLとかフォームとか決め打ちなので,みずほ銀行はもうHTMLを変更したりしないでください.お願いします.

こういう用途には,httpclientよりWWW::Mechanizeの方がよさげだな.

とりあえず,3時間毎にcronで動かして,新しい「キユウヨ」が存在したらtwitterで呟くボットを動かしておく.

これで目的は達成された.

ダウンロード

mizuhodirect.rb

2012-03-17追記: githubに移動しました https://github.com/binzume/mizuhodirect-ruby

サンプル

#!/usr/local/bin/ruby -Ku
require "rubygems"
require "httpclient"
require "kconv"
require "hpricot"
require "mizuhodirect"

    account={
        "ID" => "1234567890",
        "PASS" => "AbcDEfg123",
        "QA" => [
            {"q" => "心に残る先生", "a"=>"山田太郎" },
            {"q" => "研究室の名前","a"=>"海海研" },
            {"q" => "最も好きな都市","a"=>"秋葉原" },
        ]
    }

    m = MizuhoDirect.new
    m.login(account)
    begin
        account_status = m.get_top

        puts '残高:' + account_status["zandaka"].to_s
        account_status["recentlog"].each do |row|
            p row
        end
    ensure
        m.logout
        puts "logout"
    end

ソースの文字コードはUTF-8で.上手くlogoutできないと10分間アカウントがロックされるので要注意.2回目からは合言葉聞かれないようですが,UAとIPに結び付けられているようなので,UserAgent変えたりするとまた聞かれます.質問文は,部分一致するものを.短すぎるとユニークじゃなくなってしまうかも.

レンタルサーバとか他人と共有のマシンで動かさない方が良いです.

*日記のAtomフィード

shimobayashiに言われたので,日記のフィードで全文を取れるようにした.

ちゃんと読めるかどうか確認してない.summaryとcontent両方入れたらFirefoxでサマリの方が表示されたのは,何か記述が間違っていたんだろう.めんどいので全文取得の時はsummaryを削った.使ってるCGIのatom出力がインライン要素しか処理してないので,ソースを張り付けたときとかも酷いことになりそう.

2010-01 << 2010-02 >> 2010-03