How I Found the Best Posting Times on dev.to With NodeJS(+ Usable Code) The solution The code Best posting days for 20 of the most popular tags

2025-05-24

如何使用 NodeJS(+可用代码)找到 dev.to 上的最佳发布时间

解决方案

代码

20 个最热门标签的最佳发布日期

很多创作者(包括我自己)都纠结于一件事:如果我在不合适的时间发帖怎么办?如果我发帖后几乎没人关注,我所有的努力都白费了怎么办?
悲伤的佩佩

但不用担心,我找到了一种方法来了解 dev.to 上不同标签的最佳发布时间!


解决方案

我编写了一个 NodeJS 脚本:

  1. 抓取去年不同标签的前 50 个帖子的发布日期。发布日期
  2. 将日期转换为工作日。
  3. 打印一周中最适合发布标签的第一、第二和第三天。

代码

以下是实现这一神奇功能的代码:

index.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();
Enter fullscreen mode Exit fullscreen mode

运行脚本之前,请确保已安装NodeJSPuppeteernode index.js ,然后在终端中输入 以及您希望获得最佳发帖时间的标签(不带 #)来运行代码。
例如:node index.js webdev

运行脚本后,您应该会看到它输出类似以下内容的内容。
最好的日子


20 个最热门标签的最佳发布日期

对于不想自己设置脚本的人来说,以下是 dev.to 上最受欢迎的 20 个标签的最佳发布日期:

JavaScript

最佳日子:星期三,包含去年的 10 个热门帖子;
第二好日子:星期四,包含去年的 10 个热门帖子;
第三好日子:星期六,包含去年的 10 个热门帖子;
两者平分

Webdev

最佳日子:星期三,包含去年的 14 个热门帖子;
第二好日子:星期四,包含去年的 11 个热门帖子;
第三好日子:星期五,包含去年的 7 个热门帖子

教程

最佳日子:星期三,去年有 9 个热门帖子;
第二好日子:星期六,去年有 9 个热门帖子;
第三好日子:星期四,去年有 8 个热门帖子

反应

最佳日子:星期三,包含去年的 12 个热门帖子;
第二好日子:星期六,包含去年的 10 个热门帖子;
第三好日子:星期四,包含去年的 9 个热门帖子

Python

最佳日子:星期二,包含去年的 12 个热门帖子;
次佳日子:星期日,包含去年的 12 个热门帖子;
第三佳日子:星期一,包含去年的 8 个热门帖子

生产率

最佳日子:星期三,包含去年的 12 个热门帖子;
第二好日子:星期一,包含去年的 11 个热门帖子;
第三好日子:星期五,包含去年的 10 个热门帖子

CSS

最佳日子:星期三,去年有 14 个热门帖子;
第二好日子:星期二,去年有 8 个热门帖子;
第三好日子:星期四,去年有 8 个热门帖子

DevOps

最佳日子:星期三,包含去年的 12 个热门帖子;
第二好日子:星期五,包含去年的 9 个热门帖子;
第三好日子:星期六,包含去年的 7 个热门帖子

讨论

最佳日子:星期五,包含去年的 11 个热门帖子;
第二好日子:星期一,包含去年的 10 个热门帖子;
第三好日子:星期三,包含去年的 7 个热门帖子

职业

最佳日子:星期二,去年有 11 个热门帖子;
第二好日子:星期一,去年有 9 个热门帖子;
第三好日子:星期三,去年有 8 个热门帖子

开源

最佳日子:星期三,包含去年的 11 个热门帖子
;第二好日子:星期一,包含去年的 9 个热门帖子;
第三好日子:星期五,包含去年的 8 个热门帖子

节点

最佳日子:周日,包含去年的 14 个热门帖子;
第二好日子:周二,包含去年的 8 个热门帖子;
第三好日子:周四,包含去年的 8 个热门帖子

HTML

最佳日子:星期三,包含去年的 11 个热门帖子;
第二好日子:星期二,包含去年的 9 个热门帖子;
第三好日子:星期四,包含去年的 9 个热门帖子

Codenewbie

最佳日子:星期三,包含去年的 12 个热门帖子
;第二好日子:星期一,包含去年的 9 个热门帖子;
第三好日子:星期二,包含去年的 8 个热门帖子

AWS

最佳日子:星期一,包含去年的 12 个热门帖子;
第二好日子:星期三,包含去年的 10 个热门帖子;
第三好日子:星期二,包含去年的 9 个热门帖子

打字稿

最佳日子:星期二,包含去年的 10 个热门帖子;
第二好日子:星期一,包含去年的 8 个热门帖子;
第三好日子:星期六,包含去年的 8 个热门帖子

安卓

最佳日子:星期二,包含去年的 10 个热门帖子;
次佳日子:星期三,包含去年的 10 个热门帖子;
第三佳日子:星期五,包含去年的 7 个热门帖子

Java

最佳日子:周日,包含去年的 14 个热门帖子;
第二好日子:周三,包含去年的 8 个热门帖子;
第三好日子:周一,包含去年的 7 个热门帖子

Github

最佳日子:星期一,包含去年的 14 个热门帖子
;第二好日子:星期二,包含去年的 9 个热门帖子;
第三好日子:星期五,包含去年的 6 个热门帖子

区块链

最佳日子:星期一,去年的 9 个热门帖子
排名第二:星期五,去年的 9 个热门帖子排名
第三:星期六,去年的 9 个热门帖子排名
再次持平


本文就到这里,希望对您有所帮助!关注我,了解更多编程知识。

文章来源:https://dev.to/code_jedi/how-i-found-the-best-posting-times-on-devto-with-nodejs-usable-code-18m8
PREV
如何在 MacOS 上安装 ReactJS?
NEXT
⚡️20 个让开发者更高效的简单方法⚡️