昨日の夜は前からやりたかった「このブログを読者登録しているはてなユーザーの一覧を取得してアクセスリストに入れる」という作業をしました。
アクセスリストへの追加は管理画面からやるしかないというのは調べて分かったので、せめて読者登録しているユーザーのID一覧はかんたんにとれないかと思っていろいろと調べてみました。読者登録しているユーザーの一覧は以下のURLから取得できるらしいので、試してみました。
http://blog.hatena.ne.jp/my/subscribers
ただし普通にアクセスしても認証がとおっていないと当然エラーになるので調べてみたらはてな認証APIというのが見つかりました。
HTTPS化に伴って使用できなくなったという話も見つけたのですが、試してみたらまだ使えるようなのでそちらを使って取得しました。HTTPSとは言え、プレインテキストでパスワードを送るのは何となく気が引けたのですが念のためにあとでパスワードを変えればいいかと割り切って実装してみました。あとは取得したHTMLをスクレイピングして読者登録しているユーザーIDを取ればよかったのでそんなに難しくなかったのですが、いざ取ってみるとどうも少ない...。改めて取れたデータを見てみるとそこには最大50件しか表示されていませんでした。50件単位でページングしてるのか...。
画面上には次のページへのリンクがあるのでそこからURLを取得して次のページを取得して、そのHTMLからまたIDを取得して...と繰り返してやればいいんでしょうけど、さすがにそれはめんどくさくてやりたくないので完全自動化は諦めました。この時点で既に45分が経過。
しかたないので読者一覧の画面を表示して50件ごとにテキストとしてコピーしてひとつのテキストファイルにまとめ、それを適当に解析して一覧データを作成しました。読者登録しているユーザーが135件なのでこういう力づくなやり方でもできましたが、もし1000件を超えてたらぜったい無理でしたね...。
そしてそのIDをひとつひとつコピペしてアクセスリストをメンテナンスしたらあっという間に2時間経っちゃいました。
このあたりの機能は全部WebAPIとして公開してくれたらいいのになと思いつつ、でもめったに使わないので仕方ないかと諦めて2時過ぎにやっと就寝しました。このパターンの夜更かしはほんとうにひさしぶりでした。仕事より疲れた...。
そんなわけで今朝は寝不足気味でしたがいつもどおり起きだして終日働いてきました。
今日は仕事がぜんぜん楽しくなかったので早めに帰宅してさっさと走りに行ってきました。
ペースもコースもとくに決めずにちんたら走ってきました。ここ最近は気温が高めで走り出した時点では20度近くあったのですが、でも風がひんやりとしていてとても走りやすかったです。9kmくらいからはとても気持ちよく走れました。
しばらく大会もないしこんなにちゃんと走らなくてもいいかなと思うことも増えてきたのですが、でも走ったら走ったですごく気持ちいいしすっきりして考え事も捗るしなかなか止められないもんだなと思っています。