亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

node腳本實(shí)現(xiàn)自動(dòng)化簽到和抽獎(jiǎng)功能

 更新時(shí)間:2022年01月05日 09:26:44   作者:ZERO丶X  
本文主要介紹了node腳本實(shí)現(xiàn)自動(dòng)化簽到和抽獎(jiǎng)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、前言

  掘金自從推出簽到活動(dòng)后,就不斷的完善這個(gè)功能,現(xiàn)在礦石能抽獎(jiǎng)還能兌換物品(簡(jiǎn)直不要太爽!?*??(ˊ?ˋ*)??*?),樓主本人很早之前就在用掘金了(掘金簽到功能出來(lái)之前),但是本人很懶導(dǎo)致打卡簽到斷斷續(xù)續(xù)的,所以只能眼睜睜看著別人兌換獎(jiǎng)品(羨慕、嫉妒?(?`^´?)?),現(xiàn)在礦石也沒(méi)有過(guò)w(主要碰運(yùn)氣去了( • ?ω•? )?),而正好前不久看過(guò)一些掘金的博主發(fā)了自動(dòng)簽到的相關(guān)文章,感覺(jué)這是個(gè)不錯(cuò)的辦法,所以趁著元旦好好支棱一下,因?yàn)榍安痪觅I了個(gè)便宜的騰訊云服務(wù)器加上本人是個(gè)前端老白菜,所以決定使用云服務(wù)器加node定時(shí)腳本的方法來(lái)實(shí)現(xiàn)自動(dòng)化簽到抽獎(jiǎng)功能。決定好方向后就開始查文章,所以直接搜了自動(dòng)簽到關(guān)鍵字,開始一篇篇看文章,然后著手自己實(shí)現(xiàn),廢話不多說(shuō)了,接下來(lái)看看如何實(shí)現(xiàn)自動(dòng)簽到抽獎(jiǎng)吧。

二、準(zhǔn)備

服務(wù)器

  看了很多文章,基本都是使用一個(gè)請(qǐng)求包和定時(shí)任務(wù)觸發(fā)包來(lái)實(shí)現(xiàn),看了一下有用油猴腳本的、云函數(shù)的、node腳本,基本涵蓋全了。但是不管用啥,思想和調(diào)用的接口都是一樣的,所以本文是基于云服務(wù)器來(lái)實(shí)現(xiàn),需要一個(gè)云服務(wù)器或者一臺(tái)聯(lián)網(wǎng)的24小時(shí)不關(guān)機(jī)的電腦。

node環(huán)境

  這個(gè)就不多說(shuō)了,node環(huán)境安裝網(wǎng)上都有,但是想必大家一定都安裝好了。整理好環(huán)境就開始著手建工程。

三、腳本工程搭建

創(chuàng)建一個(gè)文件夾,寫上工程名(隨便起個(gè)名字( ̄▽ ̄)/);

輸入cmd

然后打開文件夾下的dos窗口(cmd),或者用VsCode打開文件夾;

打開dos

在窗口里面輸入npm init,然后一路回車,生成package.json文件;

初始化工程

然后這里準(zhǔn)備兩個(gè)包,一個(gè)是axios,另一個(gè)是node-schedule,分別安裝如下:

npm i axios
npm i node-schedule

完成安裝后如下圖;

安裝包

然后在根目錄中新建index.jsconfig.js文件,用于代碼和參數(shù)編寫;

文件新增

至此就搭建完整個(gè)node腳本的工程文件了,接下來(lái)就是代碼編寫。

四、代碼編寫&運(yùn)行

先將使用的參數(shù)抽取到一個(gè)文件內(nèi)config.js

//config.js
//查詢今日是否簽到成功接口  https://api.juejin.cn/growth_api/v1/get_today_status
module.exports = {
  //掘金相關(guān)參數(shù)
  nuggets: {
    signInUrl: `https://api.juejin.cn/growth_api/v1/check_in`, //簽到接口
    freeCheckUrl: `https://api.juejin.cn/growth_api/v1/lottery_config/get`, //免費(fèi)抽獎(jiǎng)次數(shù)查詢
    drawUrl: `https://api.juejin.cn/growth_api/v1/lottery/draw`, //抽獎(jiǎng)接口
    headers: {
      Referer: "https://juejin.cn/",
      "Upgrade-Insecure-Requests": 1,
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
      cookie: `這里填寫自己的cookie,登錄掘金網(wǎng)頁(yè)版后打開控制臺(tái)的network,隨便找一個(gè)請(qǐng)求,查看請(qǐng)求頭里面的cookie復(fù)制過(guò)來(lái)即可`, //用自己的
    }, //相關(guān)請(qǐng)求頭
  },
  //消息推送相關(guān)參數(shù) 關(guān)注pushplus微信公眾號(hào)可以獲得一對(duì)一推送的調(diào)用參數(shù),不是推廣
  pushPlus: {
    url: `http://www.pushplus.plus/send`, //微信推送URL
    token: `這個(gè)是pushplus里面獲取的token,關(guān)注公眾號(hào)然后打開官網(wǎng)找到一對(duì)一推送就可以拿到token了`, //沒(méi)有廣告啊,這是免費(fèi)的
  }
}

  這個(gè)文件內(nèi)需要修改內(nèi)容主要是cookietoken,分別用于掘金接口請(qǐng)求和wx消息推送,如果不需要使用wx消息推送直接在pushMsg函數(shù)的第一行加一行return;就可以了。

  這里cookie直接登錄PC端掘金,按F12打開控制臺(tái),去network,然后點(diǎn)一下頁(yè)面的一些交互,就能捕獲到請(qǐng)求,然后在里面找到cookie然后復(fù)制過(guò)來(lái)就行了,如下圖。

獲取cookie

  wx消息推送的token獲取方法直接在wx上搜pushplus的公眾號(hào),然后關(guān)注后激活消息推送,去官網(wǎng)拿到token添到文件里面即可(這里不是廣告??!看大佬博客借鑒的,還是挺好用的 ─━ _ ─━?)。

最后進(jìn)行代碼編寫index.js

  這里簡(jiǎn)要摘出一部分來(lái)說(shuō)吧,整個(gè)代碼放上來(lái)太多了,主要就放簽到和定時(shí)任務(wù)這一部分吧,整個(gè)項(xiàng)目我會(huì)上傳到GithubGitee上,歡迎大家下載學(xué)習(xí)(可以的話,給個(gè)star也行(?ω<)☆)。

//需要使用的包文件
const axios = require("axios");
const schedule = require("node-schedule");
//相關(guān)參數(shù)保存在文件內(nèi)
const { nuggets, pushPlus } = require("./config");

/**
 * 獲取當(dāng)前時(shí)間的格式化時(shí)間
 * @param {String} key 調(diào)用js日期函數(shù)字符串
 * @returns 當(dāng)前時(shí)間格式化的字符串
 */
const getNowTime = (key) => {
  let nowTime = ``;
  try {
    nowTime = new Date()[key]();
  } catch (e) {
    nowTime = `獲取時(shí)間函數(shù)錯(cuò)誤!`;
    console.error(`請(qǐng)傳入日期函數(shù) —— ${e}`);
  }
  return nowTime;
}

/**
 * 掘金自動(dòng)簽到 請(qǐng)求方法
 */
const hacpaiSignRequest = async () => {
  console.log(`\n\n------${getNowTime(`toLocaleDateString`)} - 開始簽到------\n`);
  const { headers, signInUrl } = nuggets; //簽到相關(guān)參數(shù)
  const res = await axios({
    url: signInUrl,
    method: `post`,
    headers,
  });
  if (res && res.data) {
    let jsonMsg = JSON.stringify(res.data);
    console.log(`\n ${jsonMsg} \n \n ------ ${getNowTime(`toLocaleTimeString`)} 簽到成功 ------\n`);
    pushMsg(`掘金簽到結(jié)果`, res.data); //簽到成功后推送消息
    //簽到成功后,30s內(nèi)查詢免費(fèi)抽獎(jiǎng)次數(shù)
    setTimeout(() => {
      freeCheck();
    }, Math.random() * 30 * 1000)
  } else {
    console.log(res);
    console.log(`\n ------ ${getNowTime(`toLocaleTimeString`)} 簽到失敗 ------ \n`);
    pushMsg(`掘金簽到結(jié)果`, { '簽到失敗': res.data }); //簽到成功后推送消息
  }
}

//定時(shí)觸發(fā)任務(wù)
const signTask = () => {
  //每天在6:00-6:10隨機(jī)簽到
  schedule.scheduleJob("0 0 6 * * *", () => {
    setTimeout(() => {
      hacpaiSignRequest(); //簽到函數(shù)
    }, Math.random() * 10 * 60 * 1000)
  })
}

//開始執(zhí)行任務(wù)
console.log(`開始執(zhí)行任務(wù)-${getNowTime('toLocaleString')}`);
signTask();

  這里代碼不能直接使用,因?yàn)橛行┖瘮?shù)沒(méi)有放上去,這里編寫邏輯主要就是簽到—》查詢免費(fèi)抽獎(jiǎng)次數(shù)—》抽獎(jiǎng),這個(gè)流程,每天6:00-6:10內(nèi)任意一個(gè)時(shí)段隨機(jī)觸發(fā)(害怕寫死被當(dāng)成機(jī)器人!!!∑(?Д?ノ)ノ)。代碼還是挺好寫的,主要把需求邏輯理順,然后找到相關(guān)的接口就行,最后不管用什么請(qǐng)求包,只要是http請(qǐng)求就可以完成這些功能。

最后在cmd窗口內(nèi)輸入node index.js就可以執(zhí)行代碼了,然后一直放在穩(wěn)定的環(huán)境中運(yùn)行就行了(我直接扔服務(wù)器?(?????)?)。

  本文主要使用了wx消息推送,如果各位看官有需要郵箱消息推送的需求可以在評(píng)論區(qū)告訴我,我可以之后再寫一篇關(guān)于使用node進(jìn)行郵箱消息推送的文章,感謝大家支持!(自己想寫就寫唄!還說(shuō)出來(lái)!ヾ(•ω•`。))

五、總結(jié)以及想說(shuō)的話

  剛開始想著這個(gè)應(yīng)該可能有點(diǎn)難做,但實(shí)際接觸后發(fā)現(xiàn)也沒(méi)有那么難寫,主要還是需要克服自己心理上的障礙,克服懶惰以及不想干的情緒,我希望能找回大學(xué)時(shí)候的那種感覺(jué),不管能不能做成,先硬著頭皮接下來(lái),總會(huì)有辦法解決的,大不了多花一些時(shí)間,相信只有這樣才能讓自己成長(zhǎng),繼續(xù)加油吧!小D!還有正在讀這篇博客的同學(xué),大家也要一起加油喲!( ̄▽ ̄)/

六、相關(guān)源碼和借鑒的博客

源代碼

gitee AutomaticCheck-inJueJin

github: AutomaticCheck-inJueJin

借鑒過(guò)的文章 大佬們的博客(順序不分先后(*?ω?)):

掘金免漏簽!自動(dòng)簽到&自動(dòng)免費(fèi)抽獎(jiǎng)

一百行代碼實(shí)現(xiàn)!云函數(shù)版掘金自動(dòng)簽到&抽獎(jiǎng)&郵件提醒~

?? 幾行代碼實(shí)現(xiàn)掘金自動(dòng)簽到+微信推送 再也不怕漏簽了

云函數(shù)定時(shí)觸發(fā)掘金社區(qū):自動(dòng)簽到 、自動(dòng)免費(fèi)抽獎(jiǎng) ????

掘金簽到總是忘記?node自動(dòng)簽到來(lái)幫你

到此這篇關(guān)于node腳本實(shí)現(xiàn)自動(dòng)化簽到和抽獎(jiǎng)功能的文章就介紹到這了,更多相關(guān)node自動(dòng)簽到抽獎(jiǎng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node版本快速切換及管理方法

    node版本快速切換及管理方法

    這篇文章主要為大家介紹了node版本快速切換及管理方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 用npm install時(shí)報(bào)錯(cuò)node-sass npm ERR command failed問(wèn)題的解決方法

    用npm install時(shí)報(bào)錯(cuò)node-sass npm ERR command

    在用npm install時(shí)報(bào)錯(cuò)npm ERR! path D:…\node-sass和npm ERR! command failed 問(wèn)題,本文給大家介紹了如何解決這個(gè)問(wèn)題,文中通過(guò)圖文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • npm包發(fā)布和刪除的超詳細(xì)教程

    npm包發(fā)布和刪除的超詳細(xì)教程

    npm是JavaScript的包管理器,也是世界上最大的軟件注冊(cè)中心,下面這篇文章主要給大家介紹了關(guān)于npm包發(fā)布和刪除的超詳細(xì)教程,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • autojs的Node.js正確退出腳本示例

    autojs的Node.js正確退出腳本示例

    這篇文章主要為大家介紹了autojs的Node.js正確退出腳本示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • linux 下以二進(jìn)制的方式安裝 nodejs

    linux 下以二進(jìn)制的方式安裝 nodejs

    這篇文章主要介紹了linux 下以二進(jìn)制的方式安裝 nodejs,文中給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 解決node.js中bcrypt遇到的安裝問(wèn)題

    解決node.js中bcrypt遇到的安裝問(wèn)題

    這篇文章主要介紹了解決node.js中bcrypt遇到的安裝問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Nodejs異步流程框架async的方法

    Nodejs異步流程框架async的方法

    這篇文章主要介紹了Nodejs異步流程框架async的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • nodejs 遞歸拷貝、讀取目錄下所有文件和目錄

    nodejs 遞歸拷貝、讀取目錄下所有文件和目錄

    這篇文章主要介紹了nodejs 遞歸拷貝、讀取目錄下所有文件和目錄,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Node.js Process對(duì)象詳解

    Node.js Process對(duì)象詳解

    本文詳細(xì)講解了Node.js Process對(duì)象,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Node.js批量給圖片加水印的方法

    Node.js批量給圖片加水印的方法

    這篇文章主要介紹了Node.js批量給圖片加水印的方法,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2016-11-11

最新評(píng)論