내가 어떻게 NodeJS를 사용하여 dev.to에서 가장 좋은 발표 시간을 찾았는지 (+ 사용 가능한 코드)

많은 창작자 (나 포함) 를 괴롭히는 일이 하나 있다. 바로 내가 잘못된 시간에 글을 쓰면?만약 내가 글을 올린다면, 나의 댓글은 거의 아무런 흡인력도 없을 것이다. 나의 모든 노력이 헛수고가 되면 어떻게 합니까?

하지만 걱정하지 마세요. dev.to에 다른 라벨이 붙는 가장 좋은 발표 시간을 알 수 있는 방법을 찾았어요!

솔루션
NodeJS 스크립트를 만들었습니다.
  • 지난해 해시태그가 다른 상위 50개 게시물의 게시일을 대략적으로 집계했다.

  • 날짜를 근무일로 변경합니다.
  • 일주일 중 첫째, 둘째, 셋째 며칠을 인쇄하여 라벨을 발표한다.

  • 비밀 번호
    다음은 신기한 효과를 실현하는 코드입니다.
    색인js
    const puppeteer = require('puppeteer');
    async function bestdays() {
      const browser = await puppeteer.launch({});  
      days = []
      var page = await browser.newPage();
      const args = process.argv.slice(2)
      await page.goto('https://dev.to/t/'+args[0]+'/top/year');    
      for(x = 0;x < 50;x++){
        try{
          let date1 = await page.$eval("#substories > div:nth-child("+x+") > div > div.crayons-story__top > div > div:nth-child(2) > a > time", element=> element.getAttribute("datetime"))
          const d = new Date(date1);
          let day = d.getDay();
          days.push(day)
        }
        catch{}
      }
      function getAllIndexes(arr, val) {
        var indexes = [], i = -1;
        while ((i = arr.indexOf(val, i+1)) != -1){
            indexes.push(i);
        }
        return indexes;
      }
      function max(input) {
        if (toString.call(input) !== "[object Array]")  
          return false;
        return Math.max.apply(null, input);
      }
      var indexes1 = getAllIndexes(days, 0);
      var indexes2 = getAllIndexes(days, 1);
      var indexes3 = getAllIndexes(days, 2);
      var indexes4 = getAllIndexes(days, 3);
      var indexes5 = getAllIndexes(days, 4);
      var indexes6 = getAllIndexes(days, 5);
      var indexes7 = getAllIndexes(days, 6);
      dm = [indexes1.length, indexes2.length, indexes3.length, indexes4.length, indexes5.length, indexes6.length, indexes7.length]
      dm2 = []
      weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
      console.log("\n")
      console.log("Best day: "+weekdays[dm.indexOf(max(dm))]+" with "+max(dm)+" top posts from last year")
      for (j = 0; j < dm.length;j++){
        if (j != dm.indexOf(max(dm))){
          dm2.push(dm[j])
        }
        else{
          dm2[j] = 0
        }
      }
      console.log("Second best day: "+weekdays[dm2.indexOf(max(dm2))]+" with "+max(dm2)+" top posts from last year")
      dm3 = []
      for (j = 0; j < dm2.length;j++){
        if (j != dm2.indexOf(max(dm2))){
          dm3.push(dm2[j])
        }
        else{
          dm3[j] = 0
        }
      }
      console.log("Third best day: "+weekdays[dm3.indexOf(max(dm3))]+" with "+max(dm3)+" top posts from last year")
      console.log("\n")
      await page.close()
      await browser.close()
    }
    bestdays();
    
    스크립트를 실행하기 전에 NodeJSPuppeteer가 설치되어 있는지 확인한 다음 터미널에 node index.js 및 게시 시점에 가장 적합한 태그(# 없음)를 입력하여 코드를 실행합니다.
    예: node index.js webdev.
    스크립트를 실행하면 다음과 같은 출력을 볼 수 있습니다.


    가장 인기 있는 태그 20개의 게시일
    스크립트를 직접 설정하고 싶지 않은 분들은 dev.to에서 가장 인기 있는 20개의 탭을 발표하기에 가장 좋은 날입니다.

    Javascript
    가장 좋은 날: 수요일, 작년 톱 댓글 10개
    둘째 좋은 날: 목요일, 지난해 10위권
    셋째 좋은 날: 토요일, 지난해 최고급 직위 10개
    넥타이

    네트워크 개발자
    최고의 날: 수요일, 작년 14개 최고급 직위
    둘째 좋은 날: 목요일, 지난해 11개 톱클래스
    세 번째 좋은 날: 금요일, 작년에 7개의 최고급 직위가 있었다

    지도의
    가장 좋은 날: 수요일, 작년에 최고급 일자리 9개
    두 번째 좋은 날: 토요일, 작년에 최고급 일자리 9개
    셋째 좋은 날: 목요일, 지난해 최고급 직위 8개

    리액션
    베스트 데이: 수요일, 지난해 12개 톱클래스
    둘째 좋은 날: 토요일, 지난해 최고급 직위 10개
    세 번째 좋은 날: 목요일, 작년에 최고급 일자리 9개

    활용단어참조
    베스트 데이: 화요일, 지난해 12개 톱클래스
    둘째 좋은 날: 일요일, 지난해 12개 톱클래스
    셋째 좋은 날: 월요일, 지난해 최고급 직위 8개

    생산성
    베스트 데이: 수요일, 지난해 12개 톱클래스
    둘째 좋은 날: 월요일, 지난해 11개 톱클래스
    세 번째 좋은 날: 금요일, 지난해 최고급 직위 10개

    CSS
    최고의 날: 수요일, 작년 14개 최고급 직위
    둘째 좋은 날: 화요일, 지난해 최고의 직위 8개
    셋째 좋은 날: 목요일, 지난해 최고급 직위 8개

    드워스
    베스트 데이: 수요일, 지난해 12개 톱클래스
    두 번째 좋은 날: 금요일, 작년에 최고급 일자리 9개
    셋째 좋은 날: 토요일, 작년보다 7개 톱클래스

    토론
    베스트 데이: 금요일, 지난해 11개 톱클래스
    둘째 좋은 날: 월요일, 지난해 최고급 직위 10개
    세 번째 좋은 날: 수요일, 작년에 7개의 최고급 직위가 있었다

    사업.
    베스트 데이: 화요일, 지난해 11개 톱클래스
    둘째 좋은 날: 월요일, 지난해 최고급 일자리 9개
    셋째 좋은 날: 수요일, 지난해 최고의 직위 8개

    개원
    베스트 데이: 수요일, 지난해 11개 톱클래스
    둘째 좋은 날: 월요일, 지난해 최고급 일자리 9개
    세 번째 좋은 날: 금요일, 지난해 최고의 직위 8개

    노트
    가장 좋은 날: 일요일에 작년 최고급 댓글 14개
    둘째 좋은 날: 화요일, 지난해 최고의 직위 8개
    셋째 좋은 날: 목요일, 지난해 최고급 직위 8개

    HTML
    베스트 데이: 수요일, 지난해 11개 톱클래스
    둘째 좋은 날: 화요일, 지난해 최고급 일자리 9개
    세 번째 좋은 날: 목요일, 작년에 최고급 일자리 9개

    코드 초보자
    베스트 데이: 수요일, 지난해 12개 톱클래스
    둘째 좋은 날: 월요일, 지난해 최고급 일자리 9개
    세 번째 좋은 날: 화요일, 지난해 최고의 직위 8개

    AWS
    최적기: 월요일, 작년 12개 톱 직위
    둘째 좋은 날: 수요일, 지난해 최고급 직위 10개
    세 번째 좋은 날: 화요일, 작년에 최고급 일자리 9개

    타자 원고
    베스트 데이: 화요일, 지난해 10위권
    둘째 좋은 날: 월요일, 지난해 최고급 일자리 8개
    셋째 좋은 날: 토요일, 지난해 최고의 직위 8개

    안드로이드
    베스트 데이: 화요일, 지난해 10위권
    둘째 좋은 날: 수요일, 지난해 최고급 직위 10개
    세 번째 좋은 날: 금요일, 작년에 7개의 최고급 직위가 있었다

    활용단어참조
    가장 좋은 날: 일요일에 작년 최고급 댓글 14개
    둘째 좋은 날: 수요일, 지난해 최고급 직위 8개
    셋째 좋은 날: 월요일, 작년보다 7개 톱클래스

    github
    최고의 날: 월요일, 작년 14개 최고급 직위
    둘째 좋은 날: 화요일, 지난해 최고급 일자리 9개
    세 번째 좋은 날: 금요일, 작년에 최고급 직위 6개

    블록 체인
    최고의 날: 월요일, 지난해 최고급 일자리 9개
    두 번째 좋은 날: 금요일, 작년에 최고급 일자리 9개
    세 번째 좋은 날: 토요일, 작년에 최고급 일자리 9개
    다른 넥타이
    본문은 여기까지입니다. 여러분에게 도움이 되었으면 좋겠습니다!더 많은 프로그래밍 내용에 주목하세요.

    좋은 웹페이지 즐겨찾기