Node.js代碼不到50行,實(shí)現(xiàn)稀土掘金社區(qū)自動(dòng)簽到
我們這里采用的技術(shù)棧是Node.js。代碼不到50行,先貼上代碼。
- const Koa = require('koa');
- const schedule = require('node-schedule');
- const _request = require('request');
- const app = new Koa();
- // 自定義
- const sessionid = ''; // SessionID
- const url = ''; // Url
- const options = {
- url: url,
- method:'post',
- headers: {
- 'cookie': 'sessionid='+ sessionid,
- },
- }
- // 適配Koa
- function request(url, options) {
- return new Promise(function (resolve, reject) {
- _request(url, options, function (error, response, body) {
- error && reject(error);
- resolve(response, body);
- })
- })
- }
- // 輸出信息
- async function start (ctx, next) {
- const res = await request(options);
- console.log(res.body)
- }
- const rule = '30 10 0 * * *'; // 每天的凌晨0點(diǎn)10分30秒觸發(fā)'
- // 定時(shí)任務(wù)
- const scheduleCronstyle = ()=>{
- schedule.scheduleJob(rule,()=>{
- start();
- });
- }
- app.listen(3000,()=>{
- console.log('服務(wù)啟動(dòng)成功!');
- scheduleCronstyle(); // 定時(shí)啟動(dòng)
- // start(); // 立即啟動(dòng)
- })
這些代碼就可以實(shí)現(xiàn)一個(gè)掘金自動(dòng)簽到功能,再也不用自己手動(dòng)點(diǎn)擊簽到了!
自定義
下面,我教大家怎么來(lái)進(jìn)行操作,首先看下源碼中的這段代碼。
- // 自定義
- const sessionid = ''; // SessionID
- const url = ''; // Url
你需要改動(dòng)這兩行代碼,嚴(yán)格來(lái)說(shuō),你僅僅需要改動(dòng)一行。為什么呢?下面聽(tīng)我道來(lái)。
首先,我們來(lái)看下url這個(gè)變量是從哪里獲取。
- 在網(wǎng)頁(yè)登錄你的掘金賬號(hào);
- 打開(kāi)簽到頁(yè)面(如果沒(méi)簽到,就點(diǎn)擊簽到);
- 打開(kāi)控制臺(tái),切換到網(wǎng)絡(luò)選項(xiàng)卡,找到/check_in_rules這個(gè)接口,然后把后面的字符串(以aid=開(kāi)頭)復(fù)制保存。
- 然后把剛才保存的字符串拼接到https://api.juejin.cn/growth_api/v1/check_in?后面。
例:https://api.juejin.cn/growth_api/v1/check_in?aid=?&uuid=?&_signature=?
以后,你就不用每次都進(jìn)行上面這些操作了,只需一次。
然后,我們接著看下sessionid這個(gè)變量是從何而來(lái)的。
- 同樣,我們打開(kāi)控制臺(tái);
- 切換到應(yīng)用選項(xiàng)卡下,找到Cookie選項(xiàng),點(diǎn)擊https://juejin.cn;
- 找到sessionid名稱,復(fù)制對(duì)應(yīng)值即可。
因?yàn)镃ookie有時(shí)間期限,但是一般都幾個(gè)月左右,夠用的了。過(guò)期了,重新替換下即可。
結(jié)語(yǔ)
有云服務(wù)器的小伙伴,你可以使用pm2持久運(yùn)行Node應(yīng)用。
本文轉(zhuǎn)載自微信公眾號(hào)「前端歷劫之路」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系前端歷劫之路公眾號(hào)。