たまにはPythonでやろうと思った
環境
準備
まずAPIキーが必要。ここからアプリを適当に登録して「OAuth Consumer Key」というのを控えておく。
コード
import requests import sys if len(sys.argv) != 2: print('Usage: ' + sys.argv[0] + ' blog_name.tumblr.com') exit(1); blog = sys.argv[1] api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # copied from API example offset = 0 while 1: url = 'http://api.tumblr.com/v2/blog/' + blog + '/posts/text?api_key=' + api_key + '&offset=' + str(offset) + '¬es_info=false' r = requests.get(url) j = r.json() posts = j['response']['posts'] if len(posts) == 0: break offset = offset + len(posts) for p in posts: print(p['title'] + ',' + p['post_url'])
で
python tumblr.py hogehoge.tumblr.com
でいける。
JSONの仕様
{ type: "text", blog_name: "ekimemo-blog", id: 165753226534, post_url: "http://blog.ekimemo.com/post/165753226534/仮想ホームの調整について", slug: "仮想ホームの調整について", date: "2017-09-26 06:56:30 GMT", timestamp: 1506408990, state: "published", format: "markdown", reblog_key: "IDkARQ9R", tags: [], short_url: "https://tmblr.co/ZaNGnj2QNgOKc", summary: "仮想ホームの調整について", is_blocks_post_format: false, recommended_source: null, recommended_color: null, note_count: 1, title: "仮想ホームの調整について", body: "<p>こんにちは!奪取er協会の日記係の方、らんたんです!</p> <p>いつも駅メモ!をご利用頂きありがとうございます。..............", reblog: {}, trail: [], can_like: false, can_reblog: false, can_send_in_message: true, can_reply: false, display_avatar: true }
ちなみにこのブログは駅メモ!公式ブログであることはいうまでもない