如何編寫簽到腳本?
過兩天要去搬磚了,一個優秀的程序員就是要多整幾份副業。停更幾天,🐦🐦,不過反正也沒幾個人看吧。
今天晚上我表弟的同學的姑媽的的兒子讓我幫忙寫一個定時簽到打卡的腳本,授人予魚,不如授人予漁。我就把整個過程記錄下來吧。
1
找到網絡請求
網站與服務器通信無非就是問服務器要東西,或者發東西給服務器,總歸就是瀏覽器要發送請求給服務器的,而腳本所做的就是模擬這個請求。
我們可以通過調試工具查看瀏覽器發送的請求,以及對應請求接收到的數據。通過查看請求內容,可以篩選出我們需要模擬的目標請求。
這裏以知乎爲例,可以看出,當我們點擊查看下一頁後,瀏覽器就向後端服務器發送了一個查詢下一頁內容的請求,並得到了回覆。
我們在這裏把它複製爲curl,如果你想要在這一步直接製作node.js fetch,當然你也可以選擇複製爲 node.js fetch。
2
用postman生成代碼
我想用node.js request 來製作腳本,那麼我們可以將複製到的curl,利用postman生成node.js request的對應代碼。
首先點擊postman右上角import,選擇paste raw text,把我們複製到的curl粘貼進去
這樣就得到了一個postman裏的get請求
再點擊右上角的code,選擇node.js request,當然你想用python也可以選擇python對應的方法,postman支持導出node.js,python,php,ruby等多種方法。
這樣,我們就得到了一段node.js的代碼,我們將其複製到我們的代碼文件裏就可以啦。
3
讓腳本在Linux/Win上定時執行
腳本就已經寫好了,我們可以先試試能不能跑起來。以我的腳本main.js爲例,如果用命令
$ node main.js
能跑起來,那就是正常的,同理如果你寫的是python腳本,對應的命令就是
$ python main.py
接下來就是讓腳本定時運行了,能不能成就看這一步了。
Linux上:
Linux上操作比較簡單,都在命令行操作就可以了。首先我們打開定時任務列表
$ crontab -e
在打開的定時任務列表中添加一行
0 1 * * * node 你腳本的絕對路徑
其中0 1 * * *是用來設置運行時間的,表示的是每天1點0分運行,值得注意的是要確認以下你的機器的時區,如果你的機器是標準時區的話,別忘了減8個小時, 例如你希望每天午夜2點運行腳本,就應該設置爲0 18 * * *。
以上就是Linux下的操作,不過沒有Linux服務器可咋整?可以去薅阿里雲的學生優惠羊毛,一個月9.9元還是比較良心的。不過如果你使用的是ubuntu 18.04鏡像,設置定時任務之前需要先安裝postfix,不然會報錯(因爲定時腳本如果有輸出的話,cronjob會發郵件給你,postfix是郵件服務),親身經歷。
在debian系Linux系統上,可以通過以下命令查看腳本運行日誌:
$ grep CRON /var/log/syslog
Windows上:
需要先寫一個bat腳本,新建一個txt文本文件,在裏面寫入一行
node main.js
保存,修改文件後綴名爲.bat就可以了
然後設置定時啓動就可以了。這一步圖太多了,影響觀看體驗,給大家百度了一篇教程。可以點擊查看原文查看。
往期文章