如何使用 NodeJS(+可用代码)找到 dev.to 上的最佳发布时间
解决方案
代码
20 个最热门标签的最佳发布日期
很多创作者(包括我自己)都纠结于一件事:如果我在不合适的时间发帖怎么办?如果我发帖后几乎没人关注,我所有的努力都白费了怎么办?
但不用担心,我找到了一种方法来了解 dev.to 上不同标签的最佳发布时间!
解决方案
我编写了一个 NodeJS 脚本:
- 抓取去年不同标签的前 50 个帖子的发布日期。
- 将日期转换为工作日。
- 打印一周中最适合发布标签的第一、第二和第三天。
代码
以下是实现这一神奇功能的代码:
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();
运行脚本之前,请确保已安装NodeJS和Puppeteernode 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