pythonではてなブログに投稿するスクリプト「post-hatena」作った

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からはてなブログに投稿とかもできます。このスクリプト使って色々実験しているので、応用例に関しては気が向いたら紹介します。アデュー!

関連記事