내가 게시 한 Qiita 기사의 PV 수를 API로 가져옵니다.
TL;DR
게시한 항목의 PV 수 정보
내가 게시한 기사를 보면 PV 수가 표시됩니다.
볼 수 있는 것은, 자신이 투고한 기사만 같네요.
그렇게 해서 이것을 어떻게든 일괄적으로 취할 수 없는 것일까, 라고.
Qiita API v2
이것을 실현하려면 Qiita API를 사용하면 좋을 것 같습니다.
Qiita API v2 문서
"게시물"에 대한 API를 사용하면 page_views_count(브라우즈)로 검색할 수 있는 것 같습니다.
글
조사해 보니 몇 가지 같은 일을 하고 있는 기사도 있었는데, 여기는 공부를 겸해서 스스로 쓰고 싶습니다.
제목은 파이썬에서.
사용하는 Qiita API는 다음 두 가지입니다.
이것을 실현하려면 Qiita API를 사용하면 좋을 것 같습니다.
Qiita API v2 문서
"게시물"에 대한 API를 사용하면 page_views_count(브라우즈)로 검색할 수 있는 것 같습니다.
글
조사해 보니 몇 가지 같은 일을 하고 있는 기사도 있었는데, 여기는 공부를 겸해서 스스로 쓰고 싶습니다.
제목은 파이썬에서.
사용하는 Qiita API는 다음 두 가지입니다.
액세스 토큰 얻기
먼저 액세스 토큰을 얻습니다.
"설정"→ "응용 프로그램"에서 액세스 토큰을 발행하십시오.
스코프는 이번에는 read_qiita
가 있으면 됩니다.
여기에서 얻은 토큰의 값을 기억합니다.
작성한 액세스 토큰은 목록으로 볼 수 있습니다.
환경
이번 환경은 여기입니다.
$ python3 -V
Python 3.6.8
HTTP 요청에는 요청을 사용합니다.
$ pip3 install requests
사용한 Requests 버전은 여기입니다.
$ pip3 freeze
...
requests==2.22.0
...
소스 코드
이제 PV 수를 얻는 소스 코드를 만듭니다.
이런 느낌으로 만들었습니다.
이번 환경은 여기입니다.
$ python3 -V
Python 3.6.8
HTTP 요청에는 요청을 사용합니다.
$ pip3 install requests
사용한 Requests 버전은 여기입니다.
$ pip3 freeze
...
requests==2.22.0
...
소스 코드
이제 PV 수를 얻는 소스 코드를 만듭니다.
이런 느낌으로 만들었습니다.
Authorization
헤더에 액세스 토큰 부여 get_qiita_item_pv.py
from time import sleep
import requests
access_token = "[作成したアクセストークン]"
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()
PV수는, 기사 일람의 API에서는 취득할 수 없어서(API 문서를 보면 취할 것 같은 분위기는 있습니다만…), 실제로는 기사 개별의 API를 호출할 필요가 있습니다. 이 때 자격 증명(요청은 액세스 토큰)이 필요합니다.
실행
이제 자신의 계정으로 스크립트를 실행해 보겠습니다.
이런 결과가 되었습니다.
$ python3 get_qiita_item_pv.py
page_view: 6154
title: Ubuntu Linux 18.04 LTS / 18.10でOpenJDK 11を使いたい
url: https://qiita.com/charon/items/af0f0de2ae9adbc03bfe
tags: ['Java', 'Linux', 'Ubuntu']
created_at: 2018-11-19T13:03:18+09:00
page_view: 3846
title: プロキシ環境下でdocker buildしたい
url: https://qiita.com/charon/items/d8365d610343d64d598e
tags: ['Docker']
created_at: 2019-01-04T11:29:29+09:00
page_view: 1826
title: 初めてのZeroMQ(Python)でREQ-REPパターン
url: https://qiita.com/charon/items/bdbef40fca6fa89edb24
tags: ['Python', 'ZeroMQ']
created_at: 2019-04-09T16:32:42+09:00
page_view: 1735
title: Apacheのアクセスログを、Fluentdでtailして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: Stack Overflowクローン、Scooldを使ったQAサイト
url: https://qiita.com/charon/items/cacc2cfac380d8ad46b9
tags: ['Java', 'AdventCalendar']
created_at: 2018-12-11T14:34:57+09:00
page_view: 1385
title: 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
〜省略〜
자신이 쓴 기사에서 어떤 것이 보이고 있는지, 가끔 보면 재미있을지도? 라고 생각합니다.
Reference
이 문제에 관하여(내가 게시 한 Qiita 기사의 PV 수를 API로 가져옵니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/charon/items/1d27a0dde1eeafe38910
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ python3 get_qiita_item_pv.py
page_view: 6154
title: Ubuntu Linux 18.04 LTS / 18.10でOpenJDK 11を使いたい
url: https://qiita.com/charon/items/af0f0de2ae9adbc03bfe
tags: ['Java', 'Linux', 'Ubuntu']
created_at: 2018-11-19T13:03:18+09:00
page_view: 3846
title: プロキシ環境下でdocker buildしたい
url: https://qiita.com/charon/items/d8365d610343d64d598e
tags: ['Docker']
created_at: 2019-01-04T11:29:29+09:00
page_view: 1826
title: 初めてのZeroMQ(Python)でREQ-REPパターン
url: https://qiita.com/charon/items/bdbef40fca6fa89edb24
tags: ['Python', 'ZeroMQ']
created_at: 2019-04-09T16:32:42+09:00
page_view: 1735
title: Apacheのアクセスログを、Fluentdでtailして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: Stack Overflowクローン、Scooldを使ったQAサイト
url: https://qiita.com/charon/items/cacc2cfac380d8ad46b9
tags: ['Java', 'AdventCalendar']
created_at: 2018-12-11T14:34:57+09:00
page_view: 1385
title: 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
〜省略〜
Reference
이 문제에 관하여(내가 게시 한 Qiita 기사의 PV 수를 API로 가져옵니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/charon/items/1d27a0dde1eeafe38910텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)