思いつくままプログラミングネタを書き殴ります。ソフトバンクの携帯情報配布CSVのフォーマットが変わった毎日定時にここからソフトバンクの携帯情報をCSVで取得して、携帯DBを更新しているのですが、突然エラーのメール届きました。ワークテーブルに取り込む時にエラーになっているようです。それで、色々調べてみるとCSVのフォーマットが変更され「x-jphone-sound」が無くなっていました。金曜日の定時までエラーがでなかったので、それ以降変更されたものと思います。ニュースとか新着とか更新情報には、どこにも書いてないんですよ。以前もいきなり、携帯からアクセスするIPアドレスを追加したこともあり、こういういきなりの変更は困りますね。▲DoCoMoの機種名とユーザエージェントを取得する昨日と同じノリで、DoCoMoのユーザエージェントのページからシリーズ名、機種名、ユーザエージェントを取得してCSVで出力します。rubyとnokogiriを使っています。DoCoMoのこのページでは、テーブル構造が複雑なのでxpathでtdを根こそぎ持ってきた後、ロジックでゴリゴリ組んでいます。「DoCoMo」という文字列が来たらユーザエージェントと決めうちしたり、tdのclassでシリーズ名を決めうちしたりなど、やってます。▲auの機種名称とデバイスIDを取得するauのユーザーエージェントのページに、機種名称とデバイスIDの一覧が載っています。ページを解析して、「機種名称,デバイスID」の組のCSVを出力したいと思います。スクリプトはrubyで、HTMLのパースはnokogiriを使用します。肝は最初のxpathの所にありまして、ここで必要なtrタグを根こそぎ集めています。後はtdの中身を機種名称、デバイスIDの順に交互に出力するだけです。デバイスIDの一部に同じ機種名に対して複数持つものがあるので、そこだけ注意が必要です。後、当然ですがKDDIがこのサイトの構成を少しでも変えるとこのスクリプトは動かなくなるので使用する場合はその点を気をつけてください。(12/28)PostgreSQLとRubyを組み合わせてブラックリストチェックの速度を測ってみた。