Seul le contributeur peut vérifier le nombre de vues des articles publiés par Qiita pour chaque article. Alors, ** Pour connaître le nombre total de vues de votre publication, allez dans tous les articles et calculez avec une calculatrice OK **!
c'est tout.
Je l'aurais calculé il y a exactement un an.
Cependant, cela fait un an que je suis devenu ingénieur. Une telle méthode comme une personne primitive n'est pas autorisée.
Je savais que je pouvais l'obtenir en utilisant l'API, alors j'ai cherché.
De nombreux articles ont paru, Je n'ai trouvé aucun article sur le nombre total de vues.
Enfin, comme le lien ci-dessous Je souhaite utiliser GAS pour effectuer régulièrement une agrégation automatique afin d'effectuer des analyses d'oléore.
[API Qiita] J'aime! Comptage automatique des vues ← Article incroyable
20190208 PostScript S'il s'agit d'exactement 100 articles, il sortira sans passer sauf J'ai ajouté.
import requests
import json
import math
from msvcrt import getch
USER_ID = 'Votre identifiant Qiita'
PER_PAGE = 20
allViews = 0
headers = {"content-type": "application/json",
'Authorization': 'Portez votre jeton d'accès'}
#Envoyez une demande et insérez un json qui comprend le nombre total de messages
url = 'https://qiita.com/api/v2/users/' + USER_ID
res = requests.get(url, headers=headers)
json_qiita_info = res.json()
#Extraire le nombre de messages de json
items_count = json_qiita_info['items_count']
#Calculez le nombre de pages
page = math.ceil(items_count / PER_PAGE)
print('|Le titre de l'article|Nombre de vues|Comme compte|')
#Obtenez tous les articles publiés
for i in range(page):
#Envoyez une requête et insérez un json contenant les informations de chaque article
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:
#Extraire l'ID de json
item_id = json_qiita_info[j]['id']
#Envoyez une requête et insérez un json contenant le nombre de vues de l'article avec l'ID spécifié
url = 'https://qiita.com/api/v2/items/' + str(item_id)
res = requests.get(url, headers=headers)
json_view = res.json()
#Tirez le nombre de vues de json
page_view = json_view['page_views_count']
#Ajout et substitution pour faire le nombre total de vues
allViews += page_view
#Affiché dans l'ordre du titre, du nombre de likes, du nombre de vues
print('| ' + json_qiita_info[j]['title'] + ' | ' +
str(json_qiita_info[j]['likes_count']) + ' |' +
str(page_view) + ' |')
except IndexError:
print('Afficher le total:' + str(allViews))
print('Sortie terminée')
getch()
break
#S'il s'agit d'exactement 100 articles, il se terminera sans passer sauf
print('Afficher le total:' + str(allViews))
print('Sortie terminée')
getch()
Le titre, le nombre de likes et le nombre de vues de chaque article sont affichés, et enfin le nombre total de vues est don! est.
Lors de mon enquête, ** "J'ai pu obtenir les informations de l'article uniquement avec une requête GET sans jeton d'accès!" ** Parce qu'il y avait des informations qui ** J'ai pensé: "Le nombre de vues ne peut être complété que par une requête GET qui n'utilise pas de jeton d'accès." **.
Aussi, dans le document officiel de Qiita API v2
(GET / api / v2 / items), la valeur qui existe dans le champ
Il y avait un "" page_views_count ", donc je l'ai eu et j'ai fini. .. ..
J'ai pensé, mais cela n'a pas fonctionné.
Aucun ne sera retourné comme indiqué dans l'image.
Si vous y réfléchissez bien, le nombre de vues de chaque article ne peut être confirmé que par la personne qui a écrit l'article. Il était naturel de dire qu'il n'était pas possible de l'obtenir avec une simple demande GET.
Comment obtenir le nombre correct de vues ** Utilisez le corps de la requête, y compris le jeton d'accès dans la requête GET ** Je l'ai compris avec la reconnaissance que c'était. (* La reconnaissance de cette zone est ambiguë, veuillez donc signaler toute erreur.)
Ci-dessous, cité de la documentation officielle de Qiita API v2
Paramètres Les requêtes adressées à l'API v2 utilisent cinq types de méthodes HTTP: GET, POST, PUT, PATCH et DELETE. Les requêtes adressées à de nombreuses API peuvent inclure des paramètres, mais si vous souhaitez inclure des paramètres dans une requête GET, utilisez une requête URI, sinon utilisez un corps de requête. Il existe deux types de paramètres, l'un qui est passé arbitrairement, par exemple à des fins de nation de page, et l'autre qui est essentiel, comme le texte lors de la publication. La documentation de l'API décrit les paramètres qui peuvent être envoyés pour chaque API.
Jusqu'à ce que j'utilise l'API, j'étais dans un état de "qu'est-ce que la pagination?" J'ai passé du temps.
Comme le mot pung ** Retournez le livre et recherchez les informations sur cette page ** Cela signifie qu'il est nécessaire d'implémenter le ** retournement de livre ** ... du processus.
#Envoyez une requête et insérez un json contenant les informations de chaque article
url = 'https://qiita.com/api/v2/authenticated_user/items' + '?page=' + str(i + 1)
res = requests.get(url, headers=headers)
json_qiita_info = res.json()
Les parties correspondant à la pagination sont présentées séparément pour une meilleure compréhension. C'est là que ``? Page = '+ str (i + 1) `. Il s'agit simplement d'envoyer une requête à la page avec l'index spécifié.
J'ai passé le plus de temps là-dessus.
Vous ne remarquerez peut-être pas qu'il contient un espace vide demi-largeur,
Il manque un \
à la fin de la chaîne. .. .. Il était difficile d'obtenir une erreur.
De plus, puisque la chaîne de caractères est hors de la plage de correction de la fonction d'indentation automatique
Il m'a fallu beaucoup de temps pour remarquer l'erreur en premier. .. ..
Essayez d'utiliser l'API Qiita de Python Obtenez une liste de messages à l'aide de l'API Qiita v2 [Python] Obtenez une liste de messages à l'aide de l'API Qiita + Rétrospective 2018
Recommended Posts