replyTweetMechanizeを使ってみようMechanizeというブラウザのエミュレータのようなライブラリがあり、nokogiriの成分も含んでいるので、スクレイピングにもたまに用いられているクールなライブラリのようです。ブラウザのというだけの事はあって、フォームへのポストやSSL証明書の取得なんかもできるようです。機能はいろいろあるけれどちょこっと使ってみようと思っただけなので、スクレイピングだけやりますw何やるのタイトルの通り「さくらのメンテ・障害情報」を拾ってこようと思います。Mechanizeのことざっくりと説明をしていきたいと思います。ライブラリを呼び出して、エージェントを作ります。Mechanize.newユーザーエージェントの作成。Trident/5.0)'URLを設定します。後から選択できるように引数にとるようにしました。idcと文字列が使えました。agent.get(url)でもってこの辺が通常の?スクレイピングだけのライブラリと違う部分のようで(多分)リンクの要素を選択して、その先のHTMLを引っ張れます。下のスニペットは、引数で何番目の要素かを取り、そのリンク先のDIVタグのtxt-blockというところのテキストデータを引っ張ります。いうものになっています。この部分はnokogiriのはずです。link.search('//div[@class="txt-block"]').text要素から空ならぬるぽ(Rubyはnilもオブジェクトですが、お遊びです)、あったら返すという感じ。mess色々と調べてみるとまずメンテ・障害情報のページは2個に分割されています。現在発生中の情報(12時間前後)メンテナンス予定の情報32個目の要素が現在発生中の情報にあたるようです。メンテナンス予定の情報の要素までに必ずぬるぽが1回入ります。それを踏まえると32番目の要素からぬるぽまでループさせれば現在発生中の情報は引っ張ってこれますね。1個だけ取ってくるケースだと、こんな感じに引っ張ってこれます。<pre>なのでCUIでも、Webのそのままが出るようですね。本日、ご提供サービスにおきまして、以下の通り障害が発生いたしました。サーバに接続できなくなる障害が発生しました。復旧作業が完了しました。messend上のは企画単体物で、取得部分をループにしました。endendテキストだとループの表示が分からないので、現在発生中のものを一括で取ってみたものの一部をキャプチャしました。こんな感じでずらずらと表示されて、最後にぬるぽと出ます。1回インクリメントを書くのを忘れていて、アタックのようになってしまいました。壁紙はなぜベストを尽くさないのかの上田次郎先生です。こないだ立ち読みした本に書いてあった「作る必要のないものは作らない」という言葉にムムムと考えさせられたので、今回の日記はアップするかどうか悩みました。Mechanizeのテストだからといっても、意味がなさすぎだろうと。www216.sakura.ne.jpこういう表記はGUIなら良いですが、スクレイピングして自分の使っているサーバーが対象かどうか調べようと思ったらズラズラと並んでいた方がいいですね。week.SSG5をいじれる状態まで設定しようAndroidの開発でC++のコードを使うにはfstabの編集をミスったら起動しなくなったHTTP2.0がやってくる?HTTP1.1、HTTP1.0の勉強をしておこうか。ntopセカンダリDNSのゾーン転送確認方法さくらのスタンダードサーバーにRailsをインストールしてみる。Comments【Ubuntu】UbuntuServerをコンソールからデスクトップ画面で操作する。さくらの新スタンダードプランのサーバーにRailsを入れて、Redmineをインストールした。for:このブログはさくらのクラウドで動いてます。