0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初めてのAPI】PythonでQiita記事を取得してみる

Posted at

はじめに

初めてAPIを叩いたので個人的備忘録として残します。

今回はデータ取得までしか行っていませんが、いずれは色々とやってみたいです。

アクセストークンの取得

QiitaのAPIを使うために、アクセストークンを取得します。

アクセストークンとは、API利用者かどうか判断するライセンスのようなもの。

発行方法ですが、まずはQiitaの自分のページにアクセスし、

image.png

上記画面の設定から、設定画面に行き、

image.png

アプリケーションをクリック

image.png

私はもう発行していますが、個人用アクセストークンのところからアクセストークンを発行する。

ランダムな英数字の列が表示されるので、必ずメモしておいてください

コマンドラインで動作確認

コマンドライン上でcurlコマンドを使ってまずは取得できるかを確認します。

curl -s -H "Authorization: Bearer <先ほどのアクセストークンの値>" https://qiita.com/api/v2/authenticated_user/items
  • -s : 進捗状況を表示しない(サイレントモード)
  • -H : リクエストヘッダーを指定する
C:\>curl -s -H "Authorization: Bearer <アクセストークンの値>" https://qiita.com/api/v2/authenticated_user/items
[{"rendered_body":"\n\u003ch2\u003e\n\u003cspan id=\"はじめに\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eはじめに\u003c/h2\u003e\n\n\u003cp\u003e個人的備忘録として発信しています。\u003c/p\u003e\n\n\u003ch2\u003e\n\u003cspan id=\"起きたこ と\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E8%B5%B7%E3%81%8D%E3%81%9F%E3%81%93%E3%81%A8\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003e起きたこと\u003c/h2\u003e\n\n\u003cp\u003eリモートリポジトリにp・・・

長いので省略。。ですが、取れていそうです。

Pythonで実装する

コマンドベースでは出来たので、これをpython経由で実行します。

調べているとcurlコマンドをpythonに変換してくれる神ツールを見つけたのでこれをベースにしています。
(あれ、私実装っぽいこと何もしていない。。)

curlコマンドをpythonに変換するサイト

変換したものを少し直して、次のようになりました。

import requests
import json
import pprint

URL = "https://qiita.com/api/v2/items"
TOKEN = "<アクセストークンの値>"
HEADER = {
    'Authorization': 'Bearer {}'.format(TOKEN),
}

response = requests.get(URL, headers=HEADER)
pprint.pprint(response.json())

pprintを使って、少しきれいにしています

実行してみると

・・・
  'title': '[Serverless Framework] yarn workspaceを使ったmonorepo',
  'updated_at': '2020-12-28T19:26:14+09:00',
  'url': 'https://qiita.com/allJokin/items/9316e5384a3bf7a4536b',
  'user': {'description': None,
           'facebook_id': None,
           'followees_count': 0,
           'followers_count': 0,
           'github_login_name': 'allJokin',
           'id': 'allJokin',
           'items_count': 1,
           'linkedin_id': None,
           'location': None,
           'name': '',
           'organization': None,
           'permanent_id': 600358,
           'profile_image_url': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/600358/8d5eba69a13ba6bef9ae50d23c9a1fa3e87b60ae/large.png?1607605958',
           'team_only': False,
           'twitter_screen_name': 'AllJokin',
           'website_url': None}}]
・・・

取れていそうです!!

補足

python 3.8.0
requests 2.25.1

感想

APIの仕様書が全然理解できず、記事情報全部持ってくることしかできませんでした。。
更に読み込んで、使いこなせるようになりたいです。
あと、今回はハードコーディングしていますが、config管理するなども考えていきたいです。

次はAmazonのAPIに挑戦するつもりです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?