[PYTHON] Obtenez le nombre de PV d'articles Qiita que vous avez publiés avec l'API

TL;DR

À propos du nombre de PV de l'entrée publiée

Si vous regardez l'article que vous avez posté, le nombre de PV sera affiché.

image.png

Il semble que vous ne puissiez voir que les articles que vous avez publiés.

Cela étant dit, je me suis demandé si je pouvais en quelque sorte obtenir tout cela en même temps.

Qiita API v2

Il semble que vous puissiez utiliser l'API Qiita pour y parvenir.

Documentation de l'API Qiita v2

Si vous utilisez l'API liée à "post", il semble que vous puissiez l'obtenir en tant que page_views_count (vues).

Message

Quand j'ai cherché, il y avait des articles qui faisaient la même chose, mais j'aimerais l'écrire moi-même à des fins d'étude.

Le thème est Python.

Les deux API Qiita suivantes sont utilisées.

Obtenez un jeton d'accès

Tout d'abord, obtenez un jeton d'accès.

Émettez un jeton d'accès depuis "Paramètres" → "Applications".

image.png

La portée devrait avoir read_qiita cette fois.

image.png

Rappelez-vous la valeur du jeton que vous avez obtenu ici.

image.png

Vous pouvez vérifier le jeton d'accès créé sous forme de liste.

image.png

environnement

Cet environnement est ici.

$ python3 -V
Python 3.6.8

Pour les requêtes HTTP, nous utiliserons Requests.

$ pip3 install requests

Voici la version de Requests que j'ai utilisée.

$ pip3 freeze
...
requests==2.22.0
...

Code source

Maintenant, créez le code source pour obtenir le nombre de PV.

Je l'ai fait comme ça.

get_qiita_item_pv.py

from time import sleep
import requests

access_token = "[Jeton d'accès créé]"

item_list_base_url = "https://qiita.com/api/v2/authenticated_user/items"
headers = { "Authorization": f"Bearer {access_token}" }

page = 1
per_page = 100

sleep_time = 0.1

page_views = []

while True:
    item_list_url = f"{item_list_base_url}?page={page}&per_page={per_page}"

    items = requests.get(item_list_url, headers = headers)
    items_body = items.json()

    if not len(items_body):
        break

    for entry in items_body:
        item_id = entry["id"]

        item_url = f"https://qiita.com/api/v2/items/{item_id}"

        item = requests.get(item_url, headers = headers)
        item_body = item.json()

        title = item_body["title"]
        url = item_body["url"]
        tags = item_body["tags"]
        created_at = item_body["created_at"]
        page_views_count = item_body["page_views_count"]

        page_views.append({
            "title": title,
            "url": url,
            "tags": [ tag["name"] for tag in tags ],
            "created_at": created_at,
            "page_views_count": page_views_count
        })

        sleep(sleep_time)

    page += 1

    sleep(sleep_time)

page_views.sort(key = lambda e: e["page_views_count"], reverse = True)

for page_view in page_views:
    print(f"""page_view: {page_view['page_views_count']}
  title: {page_view['title']}
  url: {page_view['url']}
  tags: {page_view['tags']}
  created_at: {page_view['created_at']}""")
    print()

Le nombre de PV ne peut pas être obtenu avec l'API de liste d'articles (bien qu'il y ait une atmosphère qui semble être obtenue en regardant le document API ...), et en réalité il est nécessaire d'appeler l'API spécifique à l'article. À ce stade, vous aurez besoin de vos informations d'identification (essentiellement un jeton d'accès).

Courir

Maintenant, exécutons ce script sur notre compte.

Le résultat est comme ça.

$ python3 get_qiita_item_pv.py 
page_view: 6154
  title: Ubuntu Linux 18.04 LTS / 18.Je souhaite utiliser OpenJDK 11 avec 10
  url: https://qiita.com/charon/items/af0f0de2ae9adbc03bfe
  tags: ['Java', 'Linux', 'Ubuntu']
  created_at: 2018-11-19T13:03:18+09:00

page_view: 3846
  title:Je souhaite créer un docker dans un environnement proxy
  url: https://qiita.com/charon/items/d8365d610343d64d598e
  tags: ['Docker']
  created_at: 2019-01-04T11:29:29+09:00

page_view: 1826
  title:REQ avec ZeroMQ (Python) pour la première fois-Modèle REP
  url: https://qiita.com/charon/items/bdbef40fca6fa89edb24
  tags: ['Python', 'ZeroMQ']
  created_at: 2019-04-09T16:32:42+09:00

page_view: 1735
  title:Créez des journaux d'accès Apache avec Fluentd et lancez-les dans Elasticsearch
  url: https://qiita.com/charon/items/86d12ac7ca2d7cf6c580
  tags: ['Apache', 'Fluentd', 'Elasticsearch', 'Kibana']
  created_at: 2018-12-12T09:09:26+09:00

page_view: 1613
  title:Site QA utilisant le clone Stack Overflow, Scoold
  url: https://qiita.com/charon/items/cacc2cfac380d8ad46b9
  tags: ['Java', 'AdventCalendar']
  created_at: 2018-12-11T14:34:57+09:00

page_view: 1385
  title:Envoyer le journal du conteneur démarré par Docker Compose à Amazon CloudWatch Logs
  url: https://qiita.com/charon/items/7e2328e5abf7340d32b6
  tags: ['Docker', 'CloudWatch-Logs']
  created_at: 2019-05-07T12:49:04+09:00

~ abrégé ~

Il pourrait être intéressant de voir ce que vous voyez dans les articles que vous avez écrits de temps en temps. Je pense.

Recommended Posts

Obtenez le nombre de PV d'articles Qiita que vous avez publiés avec l'API
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
[Python] Obtenez le nombre de vues de tous les articles publiés
Obtenez le nombre de vues de Qiita
Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
[Python] Totale automatiquement le nombre total d'articles publiés par Qiita à l'aide de l'API
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
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 le nombre de chiffres
Obtenez le nombre d'abonnés Youtube
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 les débats parlementaires via l'API
Obtenez des vacances avec l'API Google Agenda
Compter le nombre de caractères avec écho
Une histoire qui visualise le présent de Qiita avec Qiita API + Elasticsearch + Kibana
Obtenez le nombre de visites sur chaque page avec ReportingAPI + Cloud Functions
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Déterminez l'authenticité des articles publiés par machine learning (API Google Prediction).
Jusqu'à ce que vous utilisiez l'API Kaggle avec Colab
Calculez le nombre total de combinaisons avec python
Obtenez le nombre de tweets liés à un certain mot-clé à l'aide de l'API Twitter
Comment obtenir le nombre de chiffres en Python
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
Calculez la valeur totale de plusieurs colonnes avec awk
Obtenez le chemin absolu du script en cours d'exécution
Prédire le nombre de personnes infectées par COVID-19 avec Prophet
Obtenir la taille (nombre d'éléments) de Union Find en Python
Essayez d'obtenir le contenu de Word avec Golang
Obtenez des commentaires et des abonnés avec l'API de données YouTube
Gérez le numéro de version du package de requirements.txt avec pip-tools
Obtenez l'état de fonctionnement de JR West avec Python
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
J'ai créé une application avec Lambda qui notifie LINE de "j'aime" à l'aide de l'API Qiita.
Obtenez le prix d'achat et de vente de la monnaie virtuelle avec l'API de l'échange Zaif et créez un graphique
Obtenez l'identifiant d'un GPU avec une faible utilisation de la mémoire
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
Obtenez le nombre d'éléments spécifiques dans la liste python
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
[Homologie] Comptez le nombre de trous dans les données avec Python
Visualisons le nombre de personnes infectées par le virus corona avec matplotlib
Obtenez le nombre d'occurrences pour chaque élément de la liste
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Récupérez la source de la page à charger indéfiniment avec python.
10. Compter le nombre de lignes
Obtenir des informations avec l'API Zabbix
J'ai essayé de toucher l'API Qiita
Calculez le nombre de changements
Appelez l'API avec python3.
Qiita API Oauth avec Django
Obtenez un classement avec l'API Rakuten
Comment éliminer le "Les balises doivent être un tableau de hachages." Erreur dans l'API qiita
[API Qiita] [Statistiques • Apprentissage automatique] J'ai essayé de résumer et d'analyser les articles publiés jusqu'à présent.
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
Si vous donnez une liste avec l'argument par défaut de la fonction ...
Considérez ce que vous pouvez faire avec Python dans l'article Qiita
L'histoire de la visualisation des balises Qiita populaires avec Bar Chart Race