mechanizeではてなダイアリーを更新する

Pythonに手を出してみようと思います。「Hello, World!」と表示するスクリプトを書いても面白くも何ともないので、mechanizeを使ってはてなダイアリーを更新するスクリプト書いてみます。

mechanizeのインストール

mechanizeをインストールるにはeasy_installというRubyでいうところのgemのようなものが必要らしいので、それを先にインストールします。

wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

続いてmechanizeをインストール

easy_install mechanize

これでLib/site-packages以下にeggファイルが作成されます。これはzip形式の圧縮ファイルで、解凍しなくてもライブラリとして使用できるみたいです。通常ファイルとしてインストールしたい場合は-Zオプションを使います。

はてなダイアリー更新

# -*- coding: euc-jp -*-
import mechanize

username = ''
password = ''

# 仮想ブラウザを生成
br = mechanize.Browser()

# 日記ページにアクセス
br.open('http://d.hatena.ne.jp/' + username)

# 「ログイン」リンクをクリック
br.follow_link(text_regex='ログイン')

# 1番目のフォームを選択
br.select_form(nr=0)

# ユーザー名とパスワードを入力
br['name'] = username
br['password'] = password

# 送信ボタンを押す
br.submit()

# 「日記を書く」リンクをクリック
br.follow_link(text_regex='日記を書く')

# name="edit"のフォームを選択
br.select_form(name='edit')

# 日記本文を入力
br['body'] = open('diary.txt').read()

# 登録ボタンを押す
br.submit(name='edit')

かなり楽に書けました。というかほとんどコピペです。ぱっと見Rubyと大差ありませんし。次はもう少しpythonらしいプログラムを書いてみます。