Python3自動簽到 定時任務 判斷節假日

不廢話,直接上代碼Python3.6

簽到代碼,只需修改url,賬號,密碼即可,此處是登錄時無驗證登錄,有驗證碼的自行補充


# -*- coding:utf-8 -*-  
import json
import urllib.request
import datetime

# 模擬瀏覽器打開網站
browser = webdriver.Chrome()
browser.get('http://**.**.89.40/')
# 將窗口最大化
 browser.maximize_window()
                 
# 根據路徑找到按鈕,並模擬進行點擊
browser.find_element_by_id('btn').click()
# 延時2秒,以便網頁加載所有元素,避免之後找不到對應的元素
time.sleep(2)
                 
# 這裏是找到輸入框,發送要輸入的用戶名和密碼,模擬登陸
browser.find_element_by_id(
                    "username").send_keys("123456")
browser.find_element_by_id(
                    "password").send_keys("123456")
# 在輸入用戶名和密碼之後,點擊登陸按鈕
browser.find_element_by_id('btn').click()
time.sleep(2)             
# 點擊登陸後的頁面中的簽到,跳轉到簽到頁面
browser.find_element_by_id("signInCoin").click()
                time.sleep(2)            
# 這個print其實沒事什麼用,如果真的要測試腳本是否運行成功,可以用try來拋出異常
print("簽到成功")
                 
# 腳本運行成功,退出瀏覽器
browser.quit()

 

定時任務代碼

import time
from datetime import datetime, timedelta
from time import sleep
 
SECONDS_PER_DAY = 24 * 60 * 60
 
 
def doFunc():
    print "do Function..."
 
def doFirst():
    curTime = datetime.now()
    print (curTime)
    desTime = curTime.replace(hour=20, minute=0, second=0, microsecond=0)
    print (desTime)
    delta = curTime - desTime
    print (delta)
    skipSeconds = SECONDS_PER_DAY - delta.total_seconds()
    print ("Next day must sleep %d seconds" % skipSeconds)
    sleep(skipSeconds)
    #時間到執行方法
    doFunc()
 
if __name__ == "__main__":
    doFirst()

 

判斷當前日期是否是節假日

1、接口地址:http://api.goseek.cn/Tools/holiday?date=數字日期 
2、返回數據:工作日對應結果爲 0, 休息日對應結果爲 1, 節假日對應的結果爲 2 
3、節假日數據說明:本接口包含2017年起的中國法定節假日數據,數據來源國務院發佈的公告,每年更新1次,確保數據最新 

#獲取當前時間 格式20180213
nowTime=time.strftime('%Y%m%d',time.localtime())
date = nowTime
#節假日接口
server_url = "http://api.goseek.cn/Tools/holiday?date="
     
vop_url_request = urllib.request.Request(server_url+date)
vop_response = urllib.request.urlopen(vop_url_request)
     
vop_data= json.loads(vop_response.read())
#打印返回的Json串     
print (vop_data)

if vop_data['data']==0:
    print ('This day is weekend 6-7')
elif vop_data['data']==1:
    print ('This day is weekend 6-7')
elif vop_data['data']==2:
    print ('This day is holiday')
else:
    print ('Error')

 

根據當前日期是否是節假日進行,自動簽到打卡案例

# -*- coding:utf-8 -*-  
import json
import urllib.request
import datetime

# 方便延時加載
import time
from selenium import webdriver

SECONDS_PER_DAY = 24 * 60 * 60
 
##定時執行的任務 
 
from datetime import datetime, timedelta
from time import sleep
  
def doFirst():
    curTime = datetime.now()
    print (curTime)
    desTime = curTime.replace(hour=7, minute=45, second=0, microsecond=0)
    print (desTime)
    delta = desTime-curTime
    
    sleeptime = delta.total_seconds() % SECONDS_PER_DAY
    print(sleeptime)
    print ("Now day must sleep %d seconds" % sleeptime)
 
    sleep(sleeptime)
    #nowTime=datetime.datetime.now().strftime('%Y%m%d')#現在
    nowTime=time.strftime('%Y%m%d',time.localtime())
    date = nowTime
    server_url = "http://api.goseek.cn/Tools/holiday?date="
     
    vop_url_request = urllib.request.Request(server_url+date)
    vop_response = urllib.request.urlopen(vop_url_request)
     
    vop_data= json.loads(vop_response.read())
     
    print (vop_data)

    if vop_data['data']==0:
                # 模擬瀏覽器打開網站
                browser = webdriver.Chrome()
                browser.get('http://***.***.***.***/')
                   # 將窗口最大化
                browser.maximize_window()
                 
                # 根據路徑找到按鈕,並模擬進行點擊
                browser.find_element_by_id('btn').click()
                # 延時2秒,以便網頁加載所有元素,避免之後找不到對應的元素
                time.sleep(2)
                 
                # 格式是PEP8自動轉的
                # 這裏是找到輸入框,發送要輸入的用戶名和密碼,模擬登陸
                browser.find_element_by_id(
                    "username").send_keys("123456")
                browser.find_element_by_id(
                    "password").send_keys("123456")
                # 在輸入用戶名和密碼之後,點擊登陸按鈕
                browser.find_element_by_id('btn').click()
                time.sleep(2)             
                # 點擊登陸後的頁面中的簽到,跳轉到簽到頁面
                browser.find_element_by_id("signInCoin").click()
                time.sleep(2)            
               # 這個print其實沒事什麼用,如果真的要測試腳本是否運行成功,可以用try來拋出異常
                print("簽到成功")
                 
                # 腳本運行成功,退出瀏覽器
                browser.quit()
    elif vop_data['data']==1:
        print ('This day is weekend 6-7')
    elif vop_data['data']==2:
        print ('This day is holiday')
    else:
        print ('Error')
 
if __name__ == "__main__":
    doFirst()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章