Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2

Texte

Exemple de code pour obtenir une liste d'articles publiés par les utilisateurs dans Python 3 et Qiita API v2.

Dans ce post, j'appelle l'API à chaque fois pour télécharger le JSON, mais en réalité il vaut mieux le sauvegarder localement et s'y référer en raison de sa gentillesse envers le serveur (et du nombre de fois limité).

import json
import urllib.request
from pprint import pp


def get_qiita_user_url(username):
    if not isinstance(username, str):
        raise TypeError()
    return f"https://qiita.com/api/v2/users/{username}"


def fetch_qiita_user(username):
    url = get_qiita_user_url(username)
    with urllib.request.urlopen(url) as f:
        return json.load(f)


def get_qiita_useritems_url(username, page, per_page):
    if not isinstance(username, str):
        raise TypeError()
    if not isinstance(page, int) or not isinstance(per_page, int):
        raise TypeError()
    if not (1 <= page <= 100) or not (1 <= per_page <= 100):
        raise ValueError()
    return f"https://qiita.com/api/v2/users/{username}/items?page={page}&per_page={per_page}"


def fetch_qiita_useritems(username, page, per_page):
    url = get_qiita_useritems_url(username, page, per_page)
    with urllib.request.urlopen(url) as f:
        return json.load(f)


def fetch_qiita_userallitems(username):
    userinfo = fetch_qiita_user(username)
    itemcount = userinfo["items_count"]
    useritems = []
    for page in range(1, 100):
        fetched = (page - 1) * 100
        if fetched > itemcount:
            break
        useritems.extend(fetch_qiita_useritems(username, page, 100))
        page += 1
    return useritems


#Spécifiez votre nom d'utilisateur pour le moment
username = "katabamisan"
useritems = fetch_qiita_userallitems(username)
titles = [entry["title"] for entry in useritems]
pp(titles)

Mise en garde

Selon la documentation de l'API Qiita v2, l'API renvoie une réponse contenant un objet qui représente une erreur en cas d'échec. D'un autre côté, ʻurllib.request` de Python 3 lève une exception car le code d'état à ce moment est une erreur. Ce message ne traite pas spécifiquement les objets d'erreur, en supposant que l'appelant de la fonction gère l'exception.

Recommended Posts

Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
Obtenez le nombre de PV d'articles Qiita que vous avez publiés avec l'API
Obtenir une liste d'utilisateurs IAM avec Boto3
Obtenez la liste "J'aime" de Qiita en grattant
Après avoir frappé l'API Qiita avec Python pour obtenir une liste d'articles pour les débutants, nous visiterons les articles divins
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
[Python] Totale automatiquement le nombre total d'articles publiés par Qiita à l'aide de l'API
Obtenez une liste des livres électroniques DMM achetés avec Python + Selenium
[python] Obtenir une liste de variables d'instance
[Python] Obtenir une liste de dossiers uniquement
Obtenez une liste de fichiers dans un dossier avec python sans chemin
Comment générer le nombre de vues, de likes et de stocks d'articles publiés sur Qiita au format CSV (créé avec "Python + Qiita API v2")
Obtenez une liste des packages installés dans l'environnement actuel avec python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Comment obtenir une liste de fichiers dans le même répertoire avec python
Python: obtenir une liste de méthodes pour un objet
Regrouper par éléments consécutifs d'une liste en Python
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
[Python] Obtenez le nombre de vues de tous les articles publiés
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Obtenez le nombre d'éléments spécifiques dans la liste python
Discord's Python 1.5 ou version ultérieure, je ne parviens pas à obtenir la liste des membres
Comment obtenir une liste d'exceptions intégrées pour python
Python> Obtenir une liste de fichiers dans plusieurs répertoires> Utiliser glob | Trier par heure de modification
Obtenez une liste des métriques CloudWatch et une table de correspondance des unités unitaires avec Python boto
Obtenez des avis avec l'API googlemap de python
Quine Post avec l'API Qiita (Python)
Obtenez les tendances Qiita avec le scraping Python
Essayez d'obtenir la liste des fils du bulletin d'information (je n'aime pas) avec Python.
J'ai essayé de créer une liste de nombres premiers avec python
Passer la liste de Python vers C ++ par référence dans pybind11
Obtenez des informations sur la propriété en grattant avec python
Une histoire qui visualise le présent de Qiita avec Qiita API + Elasticsearch + Kibana
Afficher une liste d'alphabets en Python 3
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Hit une méthode d'une instance de classe avec l'API Web Python Bottle
Recevez une liste des résultats du traitement parallèle en Python avec starmap
[Python] Obtenez des informations sur le package Python avec l'API PyPI
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Implémentation du wrapper Python pour l'API Qiita v2
Déterminez l'authenticité des articles publiés par machine learning (API Google Prediction).
Obtenez des utilisateurs appartenant à votre organisation à partir de l'API Garoon REST avec les requêtes Python +
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
[AtCoder] Résoudre un problème de ABC101 ~ 169 avec Python
Classement des numéros de stock par balise Qiita avec python
[Python] Récupérez les fichiers dans le dossier avec Python
Obtenez un billet pour un parc à thème avec python
[python] Créer une liste de différents types de caractères
Récupérer l'appelant d'une fonction en Python
Copiez la liste en Python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Mémorandum d'extraction par requête python bs4
Résolvez A ~ D du codeur yuki 247 avec python
[Python] Débarrassez-vous de la datation avec des expressions régulières
Obtenez des informations sur le processeur de Raspberry Pi avec Python