[Python] Summiert automatisch die Gesamtzahl der von Qiita mithilfe der API veröffentlichten Artikel

Ich möchte die Gesamtzahl der Aufrufe meines Qiita-Artikels wissen! !!

Nur der Mitwirkende kann die Anzahl der Aufrufe der von Qiita veröffentlichten Artikel für jeden Artikel überprüfen. Also, ** Um die Gesamtzahl der Aufrufe Ihres Beitrags herauszufinden, gehen Sie zu allen Artikeln und berechnen Sie mit einem Taschenrechner OK **!

das ist alles.


Ich hätte es genau vor einem Jahr berechnet.

Es ist jedoch ein Jahr her, seit ich Ingenieur wurde. Eine solche Methode wie eine primitive Person ist nicht erlaubt.

Ich wusste, dass ich es mit der API bekommen konnte, also habe ich es nachgeschlagen.

Viele Artikel sind erschienen, Ich konnte keine Artikel über Gesamtansichten finden.

Zum Schluss wie der Link unten Ich möchte GAS verwenden, um regelmäßig eine automatische Aggregation durchzuführen und die Oleore-Analyse abzuschließen.

[Qiita API] Gefällt mir! Automatisches Zählen von Ansichten ← Erstaunlicher Artikel

Code


20190208 Nachtrag Wenn es genau 100 Artikel sind, wird es ohne Weitergabe außer herauskommen Ich fügte hinzu.


import requests
import json
import math
from msvcrt import getch

USER_ID = 'Ihre Qiita ID'
PER_PAGE = 20
allViews = 0

headers = {"content-type": "application/json",
           'Authorization': 'Tragen Sie Ihren Zugangstoken'}

#Senden Sie eine Anfrage und fügen Sie einen JSON ein, der die Gesamtzahl der Beiträge enthält
url = 'https://qiita.com/api/v2/users/' + USER_ID
res = requests.get(url, headers=headers)
json_qiita_info = res.json()

#Ziehen Sie die Anzahl der Beiträge von json heraus
items_count = json_qiita_info['items_count']

#Berechnen Sie die Anzahl der Seiten
page = math.ceil(items_count / PER_PAGE)

print('|Artikelüberschrift|Anzahl der Ansichten|Wie zählen|')

#Holen Sie sich alle veröffentlichten Artikel
for i in range(page):

    #Senden Sie eine Anfrage und fügen Sie einen JSON ein, der die Informationen zu jedem Artikel enthält
    url = 'https://qiita.com/api/v2/authenticated_user/items' + \
        '?page=' + str(i + 1)
    res = requests.get(url, headers=headers)
    json_qiita_info = res.json()

    for j in range(PER_PAGE):
        try:
            #ID aus json ziehen
            item_id = json_qiita_info[j]['id']

            #Senden Sie eine Anfrage und fügen Sie einen JSON ein, der die Anzahl der Aufrufe des Artikels mit der angegebenen ID enthält
            url = 'https://qiita.com/api/v2/items/' + str(item_id)
            res = requests.get(url, headers=headers)
            json_view = res.json()

            #Ziehen Sie die Anzahl der Ansichten von json heraus
            page_view = json_view['page_views_count']

            #Hinzufügen und Ersetzen, um die Gesamtzahl der Ansichten zu erstellen
            allViews += page_view

            #Anzeige in der Reihenfolge von Titel, Anzahl der Likes, Anzahl der Ansichten
            print('| ' + json_qiita_info[j]['title'] + ' | ' +
                  str(json_qiita_info[j]['likes_count']) + ' |' +
                  str(page_view) + ' |')

        except IndexError:
            print('Gesamt anzeigen:' + str(allViews))
            print('Ausgabe abgeschlossen')
            getch()
            break

#Wenn es genau 100 Artikel sind, endet es ohne Weitergabe außer
print('Gesamt anzeigen:' + str(allViews))
print('Ausgabe abgeschlossen')
getch()

Ausführungsergebnis

QiitaView.gif

Der Titel, die Anzahl der Likes und die Anzahl der Aufrufe jedes Artikels werden angezeigt, und schließlich wird die Gesamtzahl der Aufrufe nicht angegeben! ist.

Teil verstopft

Die Anzahl der Ansichten kann nicht nur per GET-Anforderung abgerufen werden

Als ich nachforschte, ** "konnte ich die Informationen des Artikels nur mit einer GET-Anfrage ohne Zugriffstoken erhalten!" ** Weil es Informationen gab, die ** Ich dachte: "Die Anzahl der Ansichten kann nur durch eine GET-Anforderung vervollständigt werden, die kein Zugriffstoken verwendet." **.

Im offiziellen Dokument von "Qiita API v2" (GET / api / v2 / items) ist der Wert im Feld vorhanden Es gab ein "page_views_count", also habe ich es bekommen und fertig. .. .. Ich dachte, aber es hat nicht funktioniert.

Keine wird wie im Bild gezeigt zurückgegeben. QiitaView.PNG

Wenn Sie sorgfältig darüber nachdenken, kann die Anzahl der Aufrufe jedes Artikels nur von der Person bestätigt werden, die den Artikel geschrieben hat. Es war natürlich zu sagen, dass es nicht möglich war, es nur mit einer GET-Anfrage zu erhalten.

So erhalten Sie die richtige Anzahl von Ansichten ** Verwenden Sie den Anforderungshauptteil einschließlich des Zugriffstokens in der GET-Anforderung ** Ich verstand es mit der Erkenntnis, dass es war. (* Die Erkennung dieses Bereichs ist nicht eindeutig. Bitte weisen Sie auf Fehler hin.)


Unten zitiert aus dem offiziellen Dokument von "Qiita API v2"

Parameter Anforderungen an API v2 verwenden fünf Arten von HTTP-Methoden: GET, POST, PUT, PATCH und DELETE. Anforderungen an viele APIs können Parameter enthalten. Wenn Sie jedoch Parameter in eine GET-Anforderung aufnehmen möchten, verwenden Sie eine URI-Abfrage, andernfalls einen Anforderungshauptteil. Es gibt zwei Arten von Parametern, von denen einer willkürlich übergeben wird, z. B. für die Paginierung, und der andere, der wichtig ist, z. B. der Text zum Zeitpunkt der Veröffentlichung. In der API-Dokumentation werden die Parameter beschrieben, die für jede API gesendet werden können.

Paging

Bis ich die API verwendet habe, befand ich mich im Status "Was ist Paging?" Ich habe einige Zeit verbracht.

Wie das Wort pung ** Drehen Sie das Buch um und schlagen Sie die Informationen auf dieser Seite nach ** Dies bedeutet, dass das ** Buchflippen ** ... des Prozesses implementiert werden muss.

   #Senden Sie eine Anfrage und fügen Sie einen JSON ein, der die Informationen zu jedem Artikel enthält
    url = 'https://qiita.com/api/v2/authenticated_user/items' + '?page=' + str(i + 1)
    res = requests.get(url, headers=headers)
    json_qiita_info = res.json()

Die Teile, die dem Paging entsprechen, werden zum leichteren Verständnis separat angezeigt. Hier ist '? Page =' + str (i + 1). Es wird lediglich eine Anfrage an die Seite mit dem angegebenen Index gesendet.

Angabe durch Zeichenkette

Ich habe die meiste Zeit damit verbracht. Möglicherweise bemerken Sie nicht, dass es ein Leerzeichen mit halber Breite enthält. Am Ende der Zeichenfolge fehlt ein \. .. .. Es war unangenehm, einen Fehler zu bekommen. Da sich die Zeichenfolge außerhalb des Korrekturbereichs der Funktion zum automatischen Einrücken befindet Ich habe lange gebraucht, um den Fehler zuerst zu bemerken. .. ..

Links, die ich als Referenz verwendet habe

Versuchen Sie, die Qiita-API von Python zu verwenden Eine Liste der Beiträge mit Qiita API v2 abrufen [Python] Eine Liste der Beiträge mit der Qiita-API abrufen + Rückblick auf 2018

Recommended Posts

[Python] Summiert automatisch die Gesamtzahl der von Qiita mithilfe der API veröffentlichten Artikel
Ermitteln Sie die Anzahl der PVs von Qiita-Artikeln, die Sie mit API veröffentlicht haben
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
[Python] Ermittelt die Anzahl der Aufrufe aller veröffentlichten Artikel
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")
Bestimmen Sie die Authentizität von veröffentlichten Artikeln durch maschinelles Lernen (Google Prediction API).
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Holen Sie sich die Anzahl der Ansichten von Qiita
Versuchen Sie, die Kraken-API mit Python zu verwenden
Tweet mit der Twitter-API in Python
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
Teilt die Zeichenfolge durch die angegebene Anzahl von Zeichen. In Ruby und Python.
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
Geben Sie die Anzahl der CPU-Kerne in Python aus
Stock Number Ranking von Qiita Tag mit Python
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Minimieren Sie die Anzahl der Polierungen, indem Sie die Kombination optimieren
Letzte Ranglistenerstellung mit der Qiita-API mit Python
Versuchen Sie es mit dem Sammlungsmodul (ChainMap) von python3
Anonymer Upload von Bildern mit der Imgur-API (mit Python)
Bestimmen Sie die Anzahl der Klassen mithilfe der Starges-Formel
Versuchen Sie, die ChatWork-API und die Qiita-API in Python zu verwenden
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
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
[Python] Ein Programm, das die Anzahl der Täler zählt
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 2
So ermitteln Sie die Anzahl der Stellen in Python
[Python] Ruft den Gesetzestext aus der e-GOV-Gesetz-API ab
Zusammenfassung der Python-Artikel des Pharmaunternehmens Yukiya
Grundeinstellungen bei Verwendung der foursquare-API mit Python
[Frage] Über die API-Konvertierung von Chat-Bot mit Python
Der Schmerz von gRPC mit Python. November 2019. (Persönliches Memo)
Senden und empfangen Sie Google Mail über die Google Mail-API mit Python
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Verwenden wir die Python-Version des Confluence-API-Moduls.
[Python] Verwenden der Linien-API [1. Erstellung des Beauty-Bots]
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 1
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
Erläuterung des Konzepts der Regressionsanalyse mit Python Extra 1
Verwenden Sie die Such-API der National Parliament Library in Python
Studie aus Python Hour8: Verwenden von Paketen
Sprachdateierkennung durch Google Speech API v2 mit Python
[Python] Verwenden Sie die Face-API von Microsoft Cognitive Services
Spielen Sie Musik, indem Sie auf die inoffizielle API von Google Play Music klicken
Clustering G-bedeutet, dass die Anzahl der Cluster automatisch bestimmt wird
Rufen Sie die Hatena Blog API von Python aus auf und speichern Sie Ihre Blog-Artikel einzeln auf Ihrem PC
Ich habe mit Lambda eine App erstellt, die LINE über die Qiita-API über "Likes" informiert.
Ich habe ein Python-Skript geschrieben, das alle meine Beiträge mit der Qiita API v2 exportiert
Wie man die Anzahl der GPUs aus Python kennt ~ Hinweise zur Verwendung von Multiprocessing mit pytorch ~
Lesen Sie englische Sätze, indem Sie mit Python auf die Google Übersetzungs-API klicken, ohne das verteilte Modul zu verwenden
(Verschieben / Reposten) Extrahieren Sie Text mit bestimmten Wörtern mithilfe der E-Gov-Gesetz-API und XML Python
der Zen von Python
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste