Qiita APIを使いたい
Qiitaに投稿した自分の記事のViewsを一覧で確認しようとしました。
(´-`).。oO(Qiitaはエンジニア向けだからきっとAPIがあるんだろうなぁ)
と思っていたらありました。
ただHTTPリクエストを投げたり受け取ったりが面倒で
(´-`).。oO(こういうのはPythonで使えるように誰かがしてくれているんだろうなぁ)
と思っていたらちゃんと作ってくれている方がいました。
驚きなのが作成が2014年!
Qiitaはここ最近のサービスだろうと侮っていました…新参者が失礼いたしました。
で、こちらでも十分なのですが毎回to_jsonするのが面倒なので改造してみました。
qiita_py_nn
本家の方はqiita_pyでqiita_py2にしようかと思ったのですが、勝手にやったら怒られそうなのでqiita_py_nnとしました。
!pip install qiita_py_nn
QiitaClientを継承したQiitaClient2を追加しています。こちらでクライアント作成して下さい。(アクセストークンの発行方法はこちら)
from qiita_py_nn.client2 import QiitaClient2
access_token = '*********************'
client = QiitaClient2(access_token=access_token)
利用例
メソッドの呼び出し方は同じです。
get_user(ユーザ情報取得)
user_name = "nekoniii3"
user = client.get_user(user_name)
print(user.name, user.description)
print(user)
ネコにいさんチャンネル 普段はYouTubeでITやAI関連の解説動画を投稿しているので是非見てください!
QiitaUser(description='普段はYouTubeでITやAI関連の解説動画を投稿しているので是非見てください!', facebook_id='', followees_count=1, followers_count=6, github_login_name=None, id='nekoniii3', items_count=23, linkedin_id='', location='', name='ネコにいさんチャンネル', organization='', permanent_id=3549938, profile_image_url='https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/3549938/3695381b0559938998b2c227a9140a9c8b8364c1/large.png?1693573415', team_only=False, twitter_screen_name='nekonii3info', website_url='https://www.youtube.com/@nekoniisan')
.to_json()は不要でuser.name、user.descriptionなどで情報を得ることができます。
get_authenticated_user_items(自身の記事を取得)
items = client.get_authenticated_user_items()
for item in items:
print(item.title, item.url)
Cloud Functionsが消えた? CloudRun関数へ https://qiita.com/nekoniii3/items/d443f49de6480a6309b2
はじめてのリバースプロキシ Cloud Run CORSエラー回避 https://qiita.com/nekoniii3/items/e6cda24f17590603a9b6
Vercelでsessionを使う(Python Flask) https://qiita.com/nekoniii3/items/369e02f767e7d1c5fa1e
表示していませんがitem.page_views_countで見られた回数を取得できます。
list_user_items(指定のユーザの記事を取得)
user_name = "sakasegawa"
items = client.list_user_items(user_name)
for item in items:
print(item.title, item.url)
最近のコーディングにおけるLLMの使い方QA https://qiita.com/sakasegawa/items/d36d922040031093cacd
MS謹製のanything to Markdownライブラリ: markitdownを試す&PRを出してみた件 https://qiita.com/sakasegawa/items/4b55deeea9c93145c4da
Gemini Multimodal APIで画面共有しながらAIと会話をする & Gemini 2.0 の OCR 性能を測ってみる! https://qiita.com/sakasegawa/items/b332367135b435b85cbb
get_item(記事の情報を取得)
item_id = "e8aaf7762110a8be9b84"
item = client.get_item(item_id)
print(item.title, item.url)
print(item)
【React初心者向け】Vercel v0で生成したページ・アプリをローカルで動かす https://qiita.com/nekoniii3/items/e8aaf7762110a8be9b84
QiitaArticle(body='(2024/12/10追記)もっと簡単な方法がありました!→[『mozさんのnoteです』](htt', coediting=False, comments_count=0, created_at='2024-09-14T21:51:13+09:00', group=None, id='e8aaf7762110a8be9b84', likes_count=18, organization_url_name=None, page_views_count=7709, private=False, reactions_count=0, rendered_body=<p data-sourcepos="1:1-1:146">(2024/12/10追記)もっと簡単な, slide=False, stocks_count=11, tags=[{'name': 'React', 'versions': []}, {'name': 'Next.js', 'versions': []}, {'name': 'Vercel', 'versions': []}, {'name': '生成AI', 'versions': []}, {'name': 'v0', 'versions': []}], team_membership=None, title='【React初心者向け】Vercel v0で生成したページ・アプリをローカルで動かす ', updated_at='2024-12-12T22:25:34+09:00', url='https://qiita.com/nekoniii3/items/e8aaf7762110a8be9b84', user={'description': '普段はYouTubeでITやAI関連の解説動画を投稿しているので是非見てください!', 'facebook_id': '', 'followees_count': 1, 'followers_count': 6, 'github_login_name': None, 'id': 'nekoniii3', 'items_count': 23, 'linkedin_id': '', 'location': '', 'name': 'ネコにいさんチャンネル', 'organization': '', 'permanent_id': 3549938, 'profile_image_url': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/3549938/3695381b0559938998b2c227a9140a9c8b8364c1/large.png?1693573415', 'team_only': False, 'twitter_screen_name': 'nekonii3info', 'website_url': 'https://www.youtube.com/@nekoniisan'})
list_item_stockers(指定の記事をストックしたユーザを取得)
item_id = "e8aaf7762110a8be9b84"
item_stockers = client.list_item_stockers(item_id)
for user in item_stockers:
print(user.id, user.name)
girimax
takobuta 拓 大内
nyantata
おわりに
ただ全てのメソッドではなく、以下のみ対応をしております。
get_item
get_user
list_user_items
list_items
list_tag_items
list_user_stocks
get_authenticated_user_items
list_users
get_authenticated_user
list_user_followees
list_user_followers
list_item_stockers
使って見て思いましたがlist_user_itemsなどで取得件数が指定できたらなぁ…なんて思いました。
不具合や改善要望ありましたらご連絡ください。