中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用node腳本實現自動化簽到和抽獎功能

發布時間:2022-01-05 11:07:59 來源:億速云 閱讀:141 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關如何使用node腳本實現自動化簽到和抽獎功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、前言

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

二、準備

服務器

看了很多文章,基本都是使用一個請求包和定時任務觸發包來實現,看了一下有用油猴腳本的、云函數的、node腳本,基本涵蓋全了。但是不管用啥,思想和調用的接口都是一樣的,所以本文是基于云服務器來實現,需要一個云服務器或者一臺聯網的24小時不關機的電腦。

node環境

這個就不多說了,node環境安裝網上都有,但是想必大家一定都安裝好了。整理好環境就開始著手建工程。

三、腳本工程搭建

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

如何使用node腳本實現自動化簽到和抽獎功能

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

如何使用node腳本實現自動化簽到和抽獎功能

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

如何使用node腳本實現自動化簽到和抽獎功能

然后這里準備兩個包,一個是axios,另一個是node-schedule,分別安裝如下:

npm i axios
npm i node-schedule

完成安裝后如下圖;

如何使用node腳本實現自動化簽到和抽獎功能

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

如何使用node腳本實現自動化簽到和抽獎功能

至此就搭建完整個node腳本的工程文件了,接下來就是代碼編寫。

四、代碼編寫&運行

先將使用的參數抽取到一個文件內config.js

//config.js
//查詢今日是否簽到成功接口  https://api.juejin.cn/growth_api/v1/get_today_status
module.exports = {
  //掘金相關參數
  nuggets: {
    signInUrl: `https://api.juejin.cn/growth_api/v1/check_in`, //簽到接口
    freeCheckUrl: `https://api.juejin.cn/growth_api/v1/lottery_config/get`, //免費抽獎次數查詢
    drawUrl: `https://api.juejin.cn/growth_api/v1/lottery/draw`, //抽獎接口
    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,登錄掘金網頁版后打開控制臺的network,隨便找一個請求,查看請求頭里面的cookie復制過來即可`, //用自己的
    }, //相關請求頭
  },
  //消息推送相關參數 關注pushplus微信公眾號可以獲得一對一推送的調用參數,不是推廣
  pushPlus: {
    url: `http://www.pushplus.plus/send`, //微信推送URL
    token: `這個是pushplus里面獲取的token,關注公眾號然后打開官網找到一對一推送就可以拿到token了`, //沒有廣告啊,這是免費的
  }
}

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

這里cookie直接登錄PC端掘金,按F12打開控制臺,去network,然后點一下頁面的一些交互,就能捕獲到請求,然后在里面找到cookie然后復制過來就行了,如下圖。

如何使用node腳本實現自動化簽到和抽獎功能

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

最后進行代碼編寫index.js

這里簡要摘出一部分來說吧,整個代碼放上來太多了,主要就放簽到和定時任務這一部分吧

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

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

/**
 * 掘金自動簽到 請求方法
 */
const hacpaiSignRequest = async () => {
  console.log(`\n\n------${getNowTime(`toLocaleDateString`)} - 開始簽到------\n`);
  const { headers, signInUrl } = nuggets; //簽到相關參數
  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(`掘金簽到結果`, res.data); //簽到成功后推送消息
    //簽到成功后,30s內查詢免費抽獎次數
    setTimeout(() => {
      freeCheck();
    }, Math.random() * 30 * 1000)
  } else {
    console.log(res);
    console.log(`\n ------ ${getNowTime(`toLocaleTimeString`)} 簽到失敗 ------ \n`);
    pushMsg(`掘金簽到結果`, { '簽到失敗': res.data }); //簽到成功后推送消息
  }
}

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

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

這里代碼不能直接使用,因為有些函數沒有放上去,這里編寫邏輯主要就是簽到-》查詢免費抽獎次數-》抽獎,這個流程,每天6:00-6:10內任意一個時段隨機觸發。代碼還是挺好寫的,主要把需求邏輯理順,然后找到相關的接口就行,最后不管用什么請求包,只要是http請求就可以完成這些功能。

最后在cmd窗口內輸入node index.js就可以執行代碼了,然后一直放在穩定的環境中運行就行了(我直接扔服務器?(?????)?)。

關于“如何使用node腳本實現自動化簽到和抽獎功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

澜沧| 长治市| 陆良县| 泾川县| 方正县| 凌源市| 阜平县| 山阳县| 成武县| 崇明县| 呈贡县| 磐石市| 莱州市| 莎车县| 正镶白旗| 类乌齐县| 芮城县| 会理县| 石林| 旬邑县| 彩票| 棋牌| 时尚| 湟中县| 平山县| 乌恰县| 玛曲县| 江口县| 文成县| 苏尼特右旗| 旬阳县| 罗田县| 集贤县| 澄江县| 安乡县| 阿拉善左旗| 关岭| 泸水县| 友谊县| 玛沁县| 萍乡市|