2017/08/27 python3対応に関して追記
はてなブログにpythonではてなブログAPIを使って投稿する
ちょっと実験したいことがあって、pythonではてなブログに投稿するスクリプトを作ったのでGitHubで公開します。
はてなブログは、はてなブログAtomPubというAPI公開しているので、簡単に記事の投稿プログラムがつくれました。ネット調べたら似たような例もあったので助かりました。最後に参考サイトとして、参考にしたサイトまとめました。
はてなブログ投稿スクリプト使い方
使い方です。以下環境はMac OS Xとpython2を想定しています。Raspberry PiとかLinuxマシンとかでも、ほぼ同じ手順で動かすことができます。Windowsでも、Anacondaとか入れれば動くんじゃないかなと思います(環境がないので試せていません)。
pythonの環境は、pyenvで仮想環境作ることを個人的にはオススメしますが、面倒臭かったり、興味ない場合は飛ばしても大丈夫です。
「post-hatena」準備
ターミナルで以下のコマンドで、GitHubから自分のコンピュータにリポジトリをclone
$ git clone https://github.com/karaage0703/post-hatena.git
requests
というライブラリが必要なので、入っていなければ以下でインストールしましょう。
$ pip install requests
Raspberry Piだと以下のようにsudoが必要かな
$ sudo pip install requests
「post-hatena」設定
post-hatena.py
というファイルの以下の箇所を修正します。
username = 'username' password = 'API key' blogname = 'yourblogname.hatenablog.com' draft = yes # yes or no
username
は自分のはてなID。password
は、はてなブログの管理画面の設定→詳細設定
のところにある、AtomPubのAPIキーというやつです。blogname
はブログのアドレスです。例えばこのサイトならkaraage.hatenadiary.jp
ね。draftは下書きで投稿するかいきなり公開するかです。yes
だと下書きで投稿で、それ以外だといきなり公開されます。
はてなブログの編集モードは、はてな記法モードがオススメです。
はてなブログへの投稿
準備が終わったら投稿です。タイトルを書いたテキストファイルtitle.txt
と本文を書いたテキストファイルbody.txt
を用意して以下のコマンドを実行してください。
$ python post-hatena.py title.txt body.txt
うまくいくとブログに記事が投稿されます。ちなみに一気に1000記事ほど投稿しようとして気づいたのですが、はてなブログは1日100記事までしか投稿できません。proでも同じ。ケチすぎるぜはてなブログ!
python3対応
なんと、ただけん (id:tadaken3)さんという方が、私のスクリプトをベースに、python3対応して下さっています。使い方など詳細は以下記事参照下さい。
やっぱり、プロの方のコードの書き方は色々参考になりますね。私もpython3対応しようとしたのですが、python3だと日本語が投稿できないという中途半端な対応になっています。日本語のエンコーディングが原因だと思いますが対応めんどくさい…ただけんさんのスクリプトを参考に、そのうち直したいなと思っています。
今すぐpython3ではてなブログに投稿したい!という方は、ただけんさんのスクリプトを使用するのが良さそうです。
まとめ
pythonではてなブログに投稿できるようになったので、色々できそうですね。例えばRaspberry Piからはてなブログに投稿とかもできます。このスクリプト使って色々実験しているので、応用例に関しては気が向いたら紹介します。アデュー!
参考サイト
はてなブログAtomPub - Hatena Developer Center