はじめに
本記事では、Qiita APIを使用して、自分が書いた記事の一覧を取得し、それをJSON形式で出力する方法についてまとめてます。
対象の方
- Qiita Apiを叩いて自分が書いた記事一覧を取得したい方
- Qiita Apiを触ってみたい方
- タイトルが気になった方
本記事のゴール
以下のように自分が作成した記事のタイトル、作成日時、リンクの一覧をJSON形式で出力する。
qiita_articles.json
[
{
"title": "記事のタイトル",
"created_at": "記事の作成日時",
"url": "記事のリンク"
},
{
"title": "記事のタイトル",
"created_at": "記事の作成日時",
"url": "記事のリンク"
},
{
"title": "記事のタイトル",
"created_at": "記事の作成日時",
"url": "記事のリンク"
},
]
前提
Qiita Apiのアクセストークンが取得できている事
環境
Python 3.12.2
環境変数の準備
Qiita Apiのアクセストークンを環境変数として管理したいので.env
ファイルを作成。
.env
QIITA_ACCESS_TOKEN="XXXXXX"
.env
ファイルはgit管理の対象外としておきます。
.gitignore
.env
モジュールのインストール
環境変数を読み込むためにpython-dotenv
をインストールします。
pip install python-dotenv
ソース
以下のソースで自分の書いた記事のタイトル、記事の作成日、記事のURLの3点を取得し、JSONファイルに書き出します。詳細はソース内のコメントの通りです。
main.py
import os
import json
import requests
from dotenv import load_dotenv
# .envファイルの内容を読み込見込む
load_dotenv()
# Qiitaのアクセストークンを設定
def get_qiita_token():
qiita_token = os.environ.get('QIITA_ACCESS_TOKEN')
if not qiita_token:
print('環境変数 QIITA_ACCESS_TOKEN が設定されていません。')
return None
return qiita_token
# Qiita記事の一覧を取得
def get_qiita_articles():
qiita_token = get_qiita_token()
headers = {
'Authorization': f'Bearer {qiita_token}'
}
articles = []
# 全ての記事を取得
page = 1
while True:
url = f'https://qiita.com/api/v2/authenticated_user/items?page={page}&per_page=100'
response = requests.get(url, headers=headers)
if response.status_code == 200:
page_articles = response.json()
# 記事がない場合、取得を終了
if not page_articles:
break
articles.extend(page_articles)
page += 1
else:
print('取得に失敗しました。')
return None
article_details = [
{
'title': article['title'],
'created_at': article['created_at'],
'url': article['url']
} for article in articles
]
return article_details
# 本スクリプトを実行
if __name__ == "__main__":
result = get_qiita_articles()
if result:
with open('qiita_articles.json', 'w', encoding='utf-8') as f:
json.dump(result, f, indent=4, ensure_ascii=False)
print('JSONファイルが生成されました: qiita_articles.json')
実行 & 結果確認
次のコマンドでスクリプトを実行し結果を確認します。
python main.py
スクリプトを実行するとqiita_articles.json
ファイルが生成されます。
JSONの中身は以下のようになっているところまで確認。
qiita_articles.json
[
{
"title": "記事のタイトル",
"created_at": "記事の作成日時",
"url": "記事のリンク"
},
{
"title": "記事のタイトル",
"created_at": "記事の作成日時",
"url": "記事のリンク"
},
{
"title": "記事のタイトル",
"created_at": "記事の作成日時",
"url": "記事のリンク"
},
]
参考