Qiita 좋아요 숫자 순위 API 만들기
TL;DR
QiitaAPI , Google Apps Script , Glitch , Firebase 을 이용하여 Qiita 좋아요 번호 순위 API 을 만들었습니다.
활용하세요!
https://us-central1-qiita-trend-web-scraping.cloudfunctions.net/qiitaScraiping/{type}/{YYYY-MM-DD}
{type}
https://us-central1-qiita-trend-web-scraping.cloudfunctions.net/qiitaScraiping/{type}/{YYYY-MM-DD}
{YYYY-MM-DD}
랭킹 등록일.
※2018/9/23 이후가 취득 가능.
e.g.)
h tps : // u-sen t et al. c ぉ d 훈 c 치온 s. 네 t/쿠이타 Sc 라이핑 g/우에 kly/2018-09-23
{
"data": [
{
"updated_at": "2018-09-19T12:29:34+09:00",
"url": "https://qiita.com/mikan3rd/items/ba4737023f08bb2ca161",
"user": {
"items_count": 24,
"name": "",
"followees_count": 19,
"id": "mikan3rd",
"website_url": "https://www.wantedly.com/users/809162",
"github_login_name": "mikan3rd",
"profile_image_url": "https://avatars2.githubusercontent.com/u/27764298?v=3",
"followers_count": 71,
"location": "Tokyo",
"twitter_screen_name": "mikan_the_third",
"organization": "",
"permanent_id": 178077,
"facebook_id": "",
"linkedin_id": "",
"description": "文系から転職したエンジニア2年生。\r\nReactとPythonがちょっと書ける"
},
"id": "ba4737023f08bb2ca161",
"tags": [
{
"versions": [],
"name": "Python"
},
{
"name": "Instagram",
"versions": []
},
{
"name": "GoogleCloudPlatform",
"versions": []
}
],
"created_at": "2018-09-17T21:12:27+09:00",
"title": "[2018] 個人でも使える!おすすめAPI一覧",
"likes_count": 1209
},
{
"url": "https://qiita.com/tkrkt/items/2fc9a9a59ce679aab728",
"user": {
"facebook_id": "",
"linkedin_id": "",
"description": "趣味エンジニアです。",
"items_count": 15,
"name": "",
"followees_count": 4,
"id": "tkrkt",
"website_url": "",
"github_login_name": "tkrkt",
"profile_image_url": "https://qiita-image-store.s3.amazonaws.com/0/60243/profile-images/1473695175",
"followers_count": 34,
"location": "",
"twitter_screen_name": null,
"organization": "",
"permanent_id": 60243
},
"id": "2fc9a9a59ce679aab728",
"tags": [
{
"versions": [],
"name": "コメント"
},
{
"name": "VSCode",
"versions": []
}
],
"created_at": "2018-09-20T21:19:45+09:00",
"title": "なぜ我々はいまだに文字列でコメントを書いているのか",
"likes_count": 909,
"updated_at": "2018-09-21T18:34:38+09:00"
},
{"以下略"}
]
}
소개
정보 수집에 있어서 항상 이 기사를 읽고 있습니다. 신세를지고 있습니다!
【매일 자동 갱신】 Qiita의 데일리 스톡 랭킹! 주간도 있습니다.
기사를 읽는 동안 문득 생각했습니다. 이것은 어떻게 랭킹을 만들고 있는 거야? ?
그래서, 학습도 겸해 바퀴의 재발명을 실시하기로 했습니다.
(참고: '바퀴의 재발명'을 부인하는 것은 잘못되었을 수 있다. )
목표
이번에는 우선 다음을 목표로 합니다.
이번에는 우선 다음을 목표로 합니다.
QiitaAPI
어쨌든 Qiita 데이터를 집계하고 순위를 만들어야합니다. Qiita의 모든 페이지를 확인하는 것은 현실적이지 않으므로 QiitaAPI을 스크래핑하는 것으로 가정합니다.
특정 날짜로 작성된 기사 목록을 검색하고, 좋아하는 숫자로 정렬하고, 순위 데이터를 작성합니다.
GoogleAppsScript
QiitaAPI를 스크래핑하고 순위를 자동으로 업데이트해야하므로 작업 스케줄러를 위해 자동으로 시작하는 것이 필요합니다. 무료로 사용할 수 있고 cron처럼 움직일 수 있는 것을 찾았는데, Google Apps Script 을 만났습니다.
이쪽을 활용해, 우선 랭킹 데이터는 2시간 두고 갱신하는 것으로 합니다.
Firebase
우선 무료로 무언가를 만드는 것이라면 Firebase이 편합니다.
그 중, 이번은 이하가 이용하기 쉽다고 합니다.
QiitaAPI를 스크래핑하고 순위를 자동으로 업데이트해야하므로 작업 스케줄러를 위해 자동으로 시작하는 것이 필요합니다. 무료로 사용할 수 있고 cron처럼 움직일 수 있는 것을 찾았는데, Google Apps Script 을 만났습니다.
이쪽을 활용해, 우선 랭킹 데이터는 2시간 두고 갱신하는 것으로 합니다.
Firebase
우선 무료로 무언가를 만드는 것이라면 Firebase이 편합니다.
그 중, 이번은 이하가 이용하기 쉽다고 합니다.
Cloud Functions
→WebAPI의 엔드포인트로 이용.
Cloud Firestore
→자동 갱신한 데이터의 저장처로서 이용.
지금까지의 정보를 조합하면 다음과 같은 구성이 됩니다.
하지만 여기에서 CloudFuncons의 무료 테두리에서는 Google 이외의 서비스에 요청을 던질 수 없다는 주제가 발생했습니다.
Glitch
위의 문제를 해결하기 위해 Glitch이라는 무료 Node.js 서버를 활용하십시오.
Glitch에서 QiitaAPI를 호출하고 데이터를 성형한 후 CloudFunctions를 통해 데이터를 등록합니다.
완성형
여기까지 모두 무료 서비스로 시스템을 정리할 수 있었습니다.
위를 모두 정리하면 다음과 같습니다.
끝에
무료 웹 서비스 전용 조합으로 WebAPI를 만들 수 있었습니다.
또한 이것을 사용하여 Qiita-Trend-PWA이라는 사이트를 만들었습니다.
무료 서비스를 결합하면 무엇이든 할 수 있습니다.
여러분도 무료 서비스를 꼭 활용해 주세요!
참고
여기까지 모두 무료 서비스로 시스템을 정리할 수 있었습니다.
위를 모두 정리하면 다음과 같습니다.
끝에
무료 웹 서비스 전용 조합으로 WebAPI를 만들 수 있었습니다.
또한 이것을 사용하여 Qiita-Trend-PWA이라는 사이트를 만들었습니다.
무료 서비스를 결합하면 무엇이든 할 수 있습니다.
여러분도 무료 서비스를 꼭 활용해 주세요!
참고
Reference
이 문제에 관하여(Qiita 좋아요 숫자 순위 API 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zonbitamago/items/1027b532b174e5ee04b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)