山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

Mechanize

以前Nokogiriを紹介したことがありますが

もっとすごいのがありました。

NokogiriはHTMLデータをXPathやCSS3セレクタ

操作できるものです。

基本的には文字列変数にHTMLを格納しますが

URLを指定してそのまま取り込むことも

できました。


しかしログインが必要なWebアプリケーションの

場合、レスポンスのクッキーを保持して

次のリクエストで送信してやったりしな

ければならず単純にはできません。


そこでMechanizeです。

Mechanizeはウェブの操作を自動化する

ライブラリです。

リンクをクリックするとか、フォームを

サブミットするといった操作ができます。

そして前述のようなクッキーの維持も

自動でしてくれるのでログインなどが

必要なWebアプリケーションもいけます。

Rubyでできていて、内部でNokogiriを

使っているのでそのままNokogiriも

使えます。


こないだこれで銀行のネットバンキング

から入出金明細のCSVを定期的に

ダウンロードするプログラムを

作りました。

感動です。

実際のコード例はまた今度ご紹介します。