Irgendwie wollte ich die Artikeldaten von Qiita analysieren, also habe ich die API berührt. Sie müssen sich diesmal nicht authentifizieren, da Sie nur die Artikelinformationen abrufen müssen.
Ich habe zwei große Dinge ausprobiert.
Ich werde in der Reihenfolge erklären.
Laden Sie die Bibliothek.
import numpy as np
import pandas as pd
import requests
import json
from pandas.io.json import json_normalize
Das `` `json_normalize``` unten ist ein praktisches Element, das die von der API zurückgegebenen Daten im json-Format in das Pandas-Datenrahmenformat formatiert.
Für das Beispiel Qiita API v2-Dokumentation
GET /api/v2/users?page=1&per_page=Es heißt 20 usw..
Mit anderen Worten, Sie können Informationen erhalten, indem Sie auf die folgende URL zugreifen.
https://qiita.com/api/v2/users?page=1&per_page=20
Hier ist `` `per_page``` die Anzahl der Benutzer, die gleichzeitig abgerufen werden sollen, und` `` page``` ist die Anzahl. Wenn Sie beispielsweise 1000 Benutzerinformationen wünschen, `` `per_page` Sie müssen mindestens 10 Anfragen mit = 100 (Obergrenze) `` `senden.
Im Code sieht es also so aus:
```python
n = 333 #Anzahl der Benutzer, die Sie erhalten möchten
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #Bekommen eine Menge
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,:] #Löschen Sie so viel wie möglich
Das Ergebnis ist ein Datenrahmen wie folgt:
Für das Beispiel Qiita API v2-Dokumentation
GET /api/v2/items?page=1&per_page=20&query=qiita+user%Es heißt 3 Ayaotti etc..
Mit anderen Worten, Sie können Informationen erhalten, indem Sie auf die folgende URL zugreifen.
https://qiita.com/api/v2/items?page=1&per_page=20&query=qiita+user%3Ayaotti
Jetzt wurde eine neue `` `Abfrage``` angezeigt, die Ihnen dieselben Suchoptionen bietet wie bei der Suche in einem Browser, wobei` ``: `` `` `` `in der URL steht. Beachten Sie, dass es in der Notation% 3A``` codiert ist.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540956/1b6f986d-87c0-8552-0c53-fedf902b54cc.png)
Auf diese Weise können Sie die Informationen eines bestimmten Benutzers mit dem Gefühl "Abfrage = Benutzer% 3A" abrufen.
Der Code sieht also so aus:
```python
n = 125 #Anzahl der Artikel, die Sie erhalten möchten
user = "yaotti"
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #Bekommen eine Menge
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,:] #Löschen Sie so viel wie möglich
Das Ergebnis ist ein Datenrahmen wie folgt:
das ist alles!
Qiita API v2-Dokumentation Wörterbuchliste mit json_normalize von Pandas in DataFrame konvertieren
Recommended Posts