python實(shí)現(xiàn)掘金定時(shí)簽到抽獎(jiǎng)
一. 概述
這里記錄一下使用 python 實(shí)現(xiàn)掘金定時(shí)簽到抽獎(jiǎng)。首先需要登錄掘金售睹,進(jìn)入簽到頁面,按 F12
打開瀏覽器的調(diào)試面板,選擇 Network
晕拆,選擇 XHR
,然后按 F5
刷新頁面材蹬,找到 check_in_rules
這個(gè)請求实幕,獲取簽到請求接口的參數(shù)就可以了,如下圖所示的頁面:
從上圖中需要獲取如下幾個(gè)參數(shù)的內(nèi)容:
- aid
- uuid
- _signature
- cookie
二. python 代碼實(shí)現(xiàn)
創(chuàng)建一個(gè) juejin.py
文件堤器,輸入如下內(nèi)容昆庇,并且輸入前面獲取到的內(nèi)容:
import requests
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
import time
# 填寫對應(yīng)參數(shù)的值
data = {
'aid': 'xxx',
'uuid': 'xxx',
'_signature': 'xxx',
'cookie': 'xxx'
}
header = {
"cookie": data.get('cookie')
}
def sign_in():
"""
請求簽到接口
:return:
"""
url = 'https://api.juejin.cn/growth_api/v1/check_in'
r = requests.post(url, data, headers=header)
print(r.text)
def draw():
"""
簽到后抽獎(jiǎng)
:return:
"""
urlD = 'https://api.juejin.cn/growth_api/v1/lottery/draw'
dataD = {
'aid': data.get('aid'),
'uuid': data.get('uuid'),
}
r = requests.post(urlD, dataD, headers=header)
print(r.text)
def job():
"""
啟動(dòng)任務(wù)
:return:
"""
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
sign_in()
time.sleep(10)
draw()
if __name__ == "__main__":
# 每天早上六點(diǎn)半簽到
scheduler = BlockingScheduler()
scheduler.add_job(job, 'cron', day_of_week='0-6', hour=6, minute=30)
scheduler.start()
這個(gè)腳本中用到了 Python
定時(shí)庫 apscheduler
,可以通過如下命令安裝:
pip install apscheduler
通過如下命令啟動(dòng) python 腳本即可:
python juejin.py
在 linux 服務(wù)器中可以通過 nohup 命令在后臺(tái)啟動(dòng)闸溃,如下所示:
nohup python juejin.py &