はてなダイアリーの日記データをダウンロードするスクリプト

バックアップ用スクリプトから呼び出すようにすれば、手元のPCのバックアップ時に同時にバックアップできる。

# coding: utf-8

# はてなダイアリーから「はてなの日記データ形式」で記事データをダウンロードして
# 日付をつけて保存

import urllib, urllib2, cookielib, datetime, traceback

def download(id,passwd):
    op = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
    d = op.open("https://www.hatena.ne.jp/login",
            urllib.urlencode({"name":id,"password":passwd})).read()
    if u"はてなIDまたはパスワードが違います" in d.decode("utf-8"):
        raise Exception, "Failed to login"
    f = id+datetime.datetime.today().strftime("%Y%m%d")+".xml"
    open(f,"wb").write(op.open("http://d.hatena.ne.jp/%s/export"%id).read())
    print "Saved into",f

if __name__=="__main__":
    try:
        download(r"hatena_id_1",r"password")
        download(r"hatena_id_2",r"drowssap")
    except:
        traceback.print_exc()
        raw_input()