[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita

Objectif de cet article

D'une manière ou d'une autre, je voulais analyser les données des articles de Qiita, alors j'ai touché l'API. Vous n'avez pas besoin de vous authentifier cette fois, car il vous suffit d'obtenir les informations sur l'article.

J'ai essayé deux grandes choses.

    1. [Obtenir la liste des informations utilisateur](# 1 Obtenir la liste des informations utilisateur)
  1. [Obtenir une liste d'articles pour un utilisateur spécifique](# 2 Obtenir une liste d'articles pour un utilisateur spécifique)

Je vais expliquer dans l'ordre.

Préparation

Chargez la bibliothèque.

import numpy as np
import pandas as pd
import requests
import json
from pandas.io.json import json_normalize

Le `` json_normalize '' en bas est pratique qui formate les données au format json renvoyées par l'API dans le format de trame de données pandas.

1. 1. Obtenir la liste des informations utilisateur

Pour l'exemple documentation API Qiita v2,

GET /api/v2/users?page=1&per_page=Il dit 20 etc..


 En d'autres termes, vous pouvez obtenir des informations en accédant à l'URL suivante.
https://qiita.com/api/v2/users?page=1&per_page=20

 Ici, `` `` par_page``` est le nombre d'utilisateurs à obtenir à la fois, et `` `` page``` est le nombre. Par exemple, si vous voulez 1000 informations utilisateur, `` `` par_page` Vous devez envoyer au moins 10 demandes avec = 100 (limite supérieure) `` ''.


 Donc, dans le code, cela ressemble à ceci:

```python
n = 333 #Nombre d'utilisateurs que vous souhaitez obtenir

per_page = 100
df = pd.DataFrame()

for page in range(1, int(n/per_page)+2): #Obtenir beaucoup
    base_url = "https://qiita.com/api/v2/users?page={0}&per_page={1}"
    url = base_url.format(page, per_page)

    response = requests.get(url)
    res = response.json()

    tmp_df = json_normalize(res)
    df = pd.concat([df, tmp_df])

df.reset_index(drop=True, inplace=True)

df = df.iloc[:n,:] #Supprimer autant que vous le souhaitez

Le résultat est une trame de données comme celle-ci: image.png

2. Obtenir une liste d'articles pour un utilisateur spécifique

Pour l'exemple documentation API Qiita v2,

GET /api/v2/items?page=1&per_page=20&query=qiita+user%Il dit 3 Ayaotti etc..


 En d'autres termes, vous pouvez obtenir des informations en accédant à l'URL suivante.
https://qiita.com/api/v2/items?page=1&per_page=20&query=qiita+user%3Ayaotti

 Maintenant, une nouvelle `` `requête``` est apparue, qui vous donne les mêmes options de recherche que lors d'une recherche dans un navigateur, où`` `:` `ʻest` ``` dans l'URL. Notez qu'il est encodé dans la notation% 3A ''.

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540956/1b6f986d-87c0-8552-0c53-fedf902b54cc.png)

 En utilisant cela, vous pouvez obtenir les informations d'un utilisateur spécifique comme `` `` query = user% 3A 〇〇〇```.
 Donc, le code ressemble à ceci:

```python
n = 125 #Nombre d'articles que vous souhaitez obtenir

user = "yaotti"
per_page = 100
df = pd.DataFrame()

for page in range(1, int(n/per_page)+2): #Obtenir beaucoup
    base_url = "https://qiita.com/api/v2/items?page={0}&per_page={1}&query=user%3A{2}"
    url = base_url.format(page, per_page, user)

    response = requests.get(url)
    res = response.json()

    tmp_df = json_normalize(res)
    df = pd.concat([df, tmp_df])

df.reset_index(drop=True, inplace=True)

df = df.iloc[:n,:] #Supprimer autant que vous le souhaitez

Le résultat est une trame de données comme celle-ci: image.png

c'est tout!

référence

Documentation de l'API Qiita v2 Convertir la liste de dictionnaires en DataFrame avec json_normalize de pandas

Recommended Posts

[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
[Python] Obtenez des informations sur le package Python avec l'API PyPI
Obtenez l'objet et le corps de Gmail avec Python et l'API Gmail
Obtenir des informations avec l'API Zabbix
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
Obtenez des informations sur l'alambic avec Python
Obtenez des avis avec l'API googlemap de python
Quine Post avec l'API Qiita (Python)
Obtenez les tendances Qiita avec le scraping Python
Obtenez des informations météorologiques avec Python et le grattage
[Python x Zapier] Obtenez des informations d'alerte et notifiez avec Slack
Collecter des informations sur Twitter avec Python (API Twitter)
Obtenez des informations sur la propriété en grattant avec python
Exploration avec Python et Twitter API 2-Implémentation de la fonction de recherche d'utilisateurs
Obtenez des informations sur la monnaie virtuelle Coincheck avec l'API ♪
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
[Python] Les informations de l'article de Qiita sont transférées dans mongoDB
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Obtenez le nom de la branche git et le nom de la balise avec python
Comment obtenir des données d'article à l'aide de l'API Qiita
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Création récente de classement à l'aide de l'API Qiita avec Python
Essayez d'utiliser l'API ChatWork et l'API Qiita en Python
Script Python pour obtenir des informations de note avec REAPER
[google-oauth] Obtenir des informations sur l'utilisateur
[Python] Découvrez la tendance de Qiita
[Python] Obtenez des informations produit telles que ASIN et JAN avec Amazon PA-API ver5.0
Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
Obtenez des images et des vidéos de la chronologie des médias avec Python + Tweepy
Obtenir le calendrier de l'API Garoon SOAP avec Python + Zeep
Obtenez des commentaires sur youtube Live avec [python] et [pytchat]!
Obtenir les informations de localisation actuelles et l'agent utilisateur en Python
Obtenez des commentaires et des abonnés avec l'API de données YouTube
Recevoir des e-mails de Gmail et étiqueter avec Python3
Obtenez le code du pays avec python
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Utiliser l'API Trello avec python
Python et matériel - Utilisation de RS232C avec Python -
Obtenez des données Youtube avec python
Obtenir l'ID de thread avec python
Commencez avec Python! ~ ② Grammaire ~
Appelez l'API avec python3.
python avec pyenv et venv
Utiliser l'API subsonique avec python3
[python] Obtenir le quotient et le surplus
Obtenez des stocks avec Python
Obtenir le répertoire personnel avec python
Obtenir un événement de clavier avec python
Qiita API Oauth avec Django
Fonctionne avec Python et R
Obtenez un classement avec l'API Rakuten
YOLP Obtenir un fichier XML d'informations cartographiques avec l'API Yahoo! Static Map
API Nifty Cloud facile à utiliser avec botocore et python
Essayez d'utiliser l'API Twitter rapidement et facilement avec Python
Comparez HTTP GET / POST avec cURL (commande) et Python (programmation)
Les débutants acquièrent des informations sur les balises Qiita et visualisent et considèrent le TOP10.
J'ai essayé la gestion du suivi avec l'API Twitter et Python (facile)