【Python】Qiita의 API로 사용자 정보와 기사 정보를 취득한다
이 기사의 목적
어쨌든 Qiita의 기사 데이터를 분석하고 싶었기 때문에 API를 살펴 보았습니다.
기사 정보 만 얻을 수 있으면 좋으므로 이번에는 인증이 필요하지 않습니다.
크게 두 가지를 시도했습니다.
1. 사용자 정보 목록 얻기
2. 특정 사용자의 기사 목록 얻기
순서대로 설명합니다.
준비
라이브러리를로드하십시오.
import numpy as np
import pandas as pd
import requests
import json
from pandas.io.json import json_normalize
맨 아래 json_normalize
는 API로 반환 된 json 형식의 데이터를 pandas의 데이터 프레임 형식으로 성형하는 편리한 사람입니다.
1. 사용자 정보 목록 얻기
Qiita API v2 문서 샘플에,GET /api/v2/users?page=1&per_page=20
등으로 작성되었습니다.
즉, 다음과 같은 URL에 액세스하면 정보를 얻을 수 있습니다.
htps : // 코 m/아피/v2/우세 rs? Page = 1 & Per_Page = 20
여기서, per_page
가 한번에 취득하는 사용자수로, page
가 그 몇번째를 나타내고 있습니다. 필요합니다.
그래서 코드로하면 다음과 같이됩니다.
n = 333 # 取得したいユーザー数
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #多めに取得しておく
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,:] #多めに取得した分削除
결과는 이러한 느낌의 데이터 프레임입니다.
2. 특정 사용자의 기사 목록 얻기
Qiita API v2 문서 샘플에,per_page=100(上限)
등으로 작성되었습니다.
즉, 다음과 같은 URL에 액세스하면 정보를 얻을 수 있습니다.
htps : // 이 m/아피/v2/있어 ms? Page = 1 & Pe r_ Page = 20 & Kue ry = Kue + + 우세 r % 3 아야 오치
여기서 새롭게, GET /api/v2/items?page=1&per_page=20&query=qiita+user%3Ayaotti
가 등장했습니다만, 이것은 브라우저로 검색할 때와 같은 검색 옵션을 사용할 수 있습니다. 단, query
이 URL에서는 :
그것은주의입니다.
이것을 사용하면 %3A
라는 느낌으로 특정 사용자의 정보를 얻을 수 있습니다.
따라서 코드는 다음과 같습니다.
n = 125 # 取得したい記事数
user = "yaotti"
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #多めに取得しておく
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,:] #多めに取得した分削除
결과는 이러한 느낌의 데이터 프레임입니다.
이상!
참고
Qiita API v2 문서
pandas의 json_normalize에서 사전 목록을 DataFrame으로 변환
Reference
이 문제에 관하여(【Python】Qiita의 API로 사용자 정보와 기사 정보를 취득한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuto16/items/ca4ba95d6d2b4aa2d11e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
라이브러리를로드하십시오.
import numpy as np
import pandas as pd
import requests
import json
from pandas.io.json import json_normalize
맨 아래
json_normalize
는 API로 반환 된 json 형식의 데이터를 pandas의 데이터 프레임 형식으로 성형하는 편리한 사람입니다.1. 사용자 정보 목록 얻기
Qiita API v2 문서 샘플에,GET /api/v2/users?page=1&per_page=20
등으로 작성되었습니다.
즉, 다음과 같은 URL에 액세스하면 정보를 얻을 수 있습니다.
htps : // 코 m/아피/v2/우세 rs? Page = 1 & Per_Page = 20
여기서, per_page
가 한번에 취득하는 사용자수로, page
가 그 몇번째를 나타내고 있습니다. 필요합니다.
그래서 코드로하면 다음과 같이됩니다.
n = 333 # 取得したいユーザー数
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #多めに取得しておく
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,:] #多めに取得した分削除
결과는 이러한 느낌의 데이터 프레임입니다.
2. 특정 사용자의 기사 목록 얻기
Qiita API v2 문서 샘플에,per_page=100(上限)
등으로 작성되었습니다.
즉, 다음과 같은 URL에 액세스하면 정보를 얻을 수 있습니다.
htps : // 이 m/아피/v2/있어 ms? Page = 1 & Pe r_ Page = 20 & Kue ry = Kue + + 우세 r % 3 아야 오치
여기서 새롭게, GET /api/v2/items?page=1&per_page=20&query=qiita+user%3Ayaotti
가 등장했습니다만, 이것은 브라우저로 검색할 때와 같은 검색 옵션을 사용할 수 있습니다. 단, query
이 URL에서는 :
그것은주의입니다.
이것을 사용하면 %3A
라는 느낌으로 특정 사용자의 정보를 얻을 수 있습니다.
따라서 코드는 다음과 같습니다.
n = 125 # 取得したい記事数
user = "yaotti"
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #多めに取得しておく
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,:] #多めに取得した分削除
결과는 이러한 느낌의 데이터 프레임입니다.
이상!
참고
Qiita API v2 문서
pandas의 json_normalize에서 사전 목록을 DataFrame으로 변환
Reference
이 문제에 관하여(【Python】Qiita의 API로 사용자 정보와 기사 정보를 취득한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuto16/items/ca4ba95d6d2b4aa2d11e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
n = 333 # 取得したいユーザー数
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #多めに取得しておく
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,:] #多めに取得した分削除
Qiita API v2 문서 샘플에,
per_page=100(上限)
등으로 작성되었습니다.즉, 다음과 같은 URL에 액세스하면 정보를 얻을 수 있습니다.
htps : // 이 m/아피/v2/있어 ms? Page = 1 & Pe r_ Page = 20 & Kue ry = Kue + + 우세 r % 3 아야 오치
여기서 새롭게,
GET /api/v2/items?page=1&per_page=20&query=qiita+user%3Ayaotti
가 등장했습니다만, 이것은 브라우저로 검색할 때와 같은 검색 옵션을 사용할 수 있습니다. 단, query
이 URL에서는 :
그것은주의입니다.이것을 사용하면
%3A
라는 느낌으로 특정 사용자의 정보를 얻을 수 있습니다.따라서 코드는 다음과 같습니다.
n = 125 # 取得したい記事数
user = "yaotti"
per_page = 100
df = pd.DataFrame()
for page in range(1, int(n/per_page)+2): #多めに取得しておく
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,:] #多めに取得した分削除
결과는 이러한 느낌의 데이터 프레임입니다.
이상!
참고
Qiita API v2 문서
pandas의 json_normalize에서 사전 목록을 DataFrame으로 변환
Reference
이 문제에 관하여(【Python】Qiita의 API로 사용자 정보와 기사 정보를 취득한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuto16/items/ca4ba95d6d2b4aa2d11e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【Python】Qiita의 API로 사용자 정보와 기사 정보를 취득한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuto16/items/ca4ba95d6d2b4aa2d11e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)