DEV 조직 통계를 스프레드시트로 가져오기
14557 단어 productivityshowdevtutorialbeginners
DEV.TO 통계를 Google 시트로 가져오기
Jeremy Morgan ・ 2월 19일 ・ 4분 읽기
#tutorial
#showdev
#productivity
#beginners
조직 수준에는 API가 없지만 내가 작성한 간단한 스크레이퍼를 통해 여전히 데이터를 얻을 수 있습니다. 조직의 대시보드로 이동하기만 하면 됩니다.
대시보드는 공개 페이지와 동일하지 않습니다. 다음과 같은 페이지에 있는지 확인하세요.
https://dev.to/dashboard/organization/ORG_ID>
function articles(){
const results = []
const articles = document.querySelectorAll('.single-article')
let data;
for(let i = 0; i < articles.length; i++){
data = article(articles[i])
if (data) {
results.push(data)
}
}
return results
}
function article(article){
// if there is no time selector that means this article
// is not published and will have no useful stats
if (article.querySelector('time')){
const name = article.querySelector('h2').innerText
const tags = article.querySelectorAll('.tag')
const author = article.querySelector('option[selected=selected]').innerText
const date = article.querySelector('time').innerText
const page_view_count = article.querySelector('.page-views-count').innerText
const reactions_count = article.querySelector('.reactions-count').innerText
const comments_count = article.querySelector('.comments-count').innerText
const tags_string = []
for(let t = 0; t < tags.length; t++){
tags_string.push(tags[t].innerText)
}
return [
name,
tags_string.join(' '),
author,
date,
page_view_count,
reactions_count,
comments_count
]
} else {
return false
}
}
function save_data(){
const results = articles()
results.unshift(['Name','Tags','Author','Date','Page Views Count','Reactions Count','Comments Count'])
const csv_string = []
for(let i = 0; i < results.length; i++){
csv_string.push(results[i].join(','))
}
var blob = new Blob([csv_string.join("\n")], {type: 'text/csv'})
let e = document.createEvent('MouseEvents')
let a = document.createElement('a')
const date = new Date().getTime()
const epoch = Math.round(date / 1000)
a.download = `export-${epoch}.csv`
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/csv', a.download, a.href].join(':')
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
a.dispatchEvent(e)
}
save_data()
유일한 단점은 HTML 마크업이 변경되면 이 스크레이퍼가 손상될 수 있으며 이 스크립트를 수정하려면 약간의 변경이 필요하다는 것입니다.
이 스크립트가 매일 끌어와 Google 스프레드시트로 푸시하고 시간이 지남에 따라 성장하는 것을 보여줄 수 있는 크롬 확장 프로그램으로 패키징되는 것을 볼 수 있었습니다.
Reference
이 문제에 관하여(DEV 조직 통계를 스프레드시트로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andrewbrown/pulling-your-dev-organization-stats-into-a-spreadsheet-2i1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)