Holen Sie sich eine Liste der Artikel, die von Benutzern mit Python 3 Qiita API v2 veröffentlicht wurden

Text

Beispielcode zum Abrufen einer Liste von Artikeln, die von Benutzern in Python 3 und [Qiita API v2] veröffentlicht wurden (https://qiita.com/api/v2/docs).

In diesem Beitrag rufe ich die API jedes Mal auf, um den JSON herunterzuladen, aber ich denke, es ist eigentlich angemessener, ihn lokal zu speichern und auf ihn zu verweisen, da er für den Server freundlich ist (und die Anzahl der Zeiten begrenzt ist).

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


#Geben Sie vorerst Ihren Benutzernamen an
username = "katabamisan"
useritems = fetch_qiita_userallitems(username)
titles = [entry["title"] for entry in useritems]
pp(titles)

Hinweis

Gemäß der Qiita API v2-Dokumentation gibt die API eine Antwort zurück, die ein Objekt enthält, das einen Fehler bei einem Fehler darstellt. Andererseits löst Python 3 urllib.request eine Ausnahme aus, da der Statuscode zu diesem Zeitpunkt ein Fehler ist. In diesem Beitrag werden Fehlerobjekte nicht speziell behandelt, vorausgesetzt, der Aufrufer der Funktion behandelt die Ausnahme.

Recommended Posts

Holen Sie sich eine Liste der Artikel, die von Benutzern mit Python 3 Qiita API v2 veröffentlicht wurden
Ermitteln Sie die Anzahl der PVs von Qiita-Artikeln, die Sie mit API veröffentlicht haben
Holen Sie sich eine Liste der IAM-Benutzer mit Boto3
Holen Sie sich Qiitas "Gefällt mir" -Liste durch Schaben
Nachdem Sie mit Python auf die Qiita-API geklickt haben, um eine Liste mit Artikeln für Anfänger zu erhalten, werden wir die Artikel von God besuchen
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
[Python] Summiert automatisch die Gesamtzahl der von Qiita mithilfe der API veröffentlichten Artikel
Holen Sie sich eine Liste der mit Python + Selen gekauften DMM-E-Books
[Python] Ruft eine Liste der Instanzvariablen ab
[Python] Nur eine Liste der Ordner abrufen
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
So geben Sie die Anzahl der ANSICHTEN, Likes und Bestände von Artikeln aus, die in Qiita an CSV gesendet wurden (erstellt mit "Python + Qiita API v2")
Rufen Sie mit Python eine Liste der in der aktuellen Umgebung installierten Pakete ab
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Python: Ruft eine Liste der Methoden für ein Objekt ab
Gruppieren Sie nach aufeinanderfolgenden Elementen einer Liste in Python
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
[Python] Ermittelt die Anzahl der Aufrufe aller veröffentlichten Artikel
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Discords Python 1.5 oder höher, ich kann keine Liste der Mitglieder erhalten
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
Python> Eine Liste der Dateien in mehreren Verzeichnissen abrufen> Glob verwenden | Nach Änderungszeit sortieren
Holen Sie sich eine Liste der CloudWatch-Metriken und eine Entsprechungstabelle der Einheiteneinheiten mit Python boto
Holen Sie sich Bewertungen mit Python Googlemap API
Quine Post mit Qiita API (Python)
Holen Sie sich Qiita-Trends mit Python-Scraping
Versuchen Sie, die Thread-Liste der Nachrichten (Abneigung) mit Python zu erhalten.
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Übergeben Sie die Liste von Python an C ++ als Referenz in pybind11
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
Zeigen Sie eine Liste der Alphabete in Python 3 an
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Implementierter Python-Wrapper für Qiita API v2
Bestimmen Sie die Authentizität von veröffentlichten Artikeln durch maschinelles Lernen (Google Prediction API).
Holen Sie sich mit Python + Requests Benutzer, die zu Ihrer Organisation gehören, über die Garoon REST-API
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Stock Number Ranking von Qiita Tag mit Python
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Holen Sie sich ein Ticket für einen Themenpark mit Python
[Python] Erstellen Sie eine Liste mit verschiedenen Zeichentypen
Holen Sie sich den Aufrufer einer Funktion in Python
Kopieren Sie die Liste in Python
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Memorandum der Extraktion durch Python BS4-Anfrage
Löse A ~ D des Yuki-Codierers 247 mit Python
[Python] Werden Sie die Datierung mit regulären Ausdrücken los
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python