Python3自動(dòng)簽到 定時(shí)任務(wù) 判斷節(jié)假日的實(shí)例
不廢話,直接上代碼Python3.6
簽到代碼,只需修改url,賬號(hào),密碼即可,此處是登錄時(shí)無驗(yàn)證登錄,有驗(yàn)證碼的自行補(bǔ)充
# -*- coding:utf-8 -*-
import json
import urllib.request
import datetime
# 模擬瀏覽器打開網(wǎng)站
browser = webdriver.Chrome()
browser.get('http://**.**.121.54/')
# 將窗口最大化
browser.maximize_window()
# 根據(jù)路徑找到按鈕,并模擬進(jìn)行點(diǎn)擊
browser.find_element_by_id('btn').click()
# 延時(shí)2秒,以便網(wǎng)頁加載所有元素,避免之后找不到對(duì)應(yīng)的元素
time.sleep(2)
# 這里是找到輸入框,發(fā)送要輸入的用戶名和密碼,模擬登陸
browser.find_element_by_id(
"username").send_keys("123456")
browser.find_element_by_id(
"password").send_keys("123456")
# 在輸入用戶名和密碼之后,點(diǎn)擊登陸按鈕
browser.find_element_by_id('btn').click()
time.sleep(2)
# 點(diǎn)擊登陸后的頁面中的簽到,跳轉(zhuǎn)到簽到頁面
browser.find_element_by_id("signInCoin").click()
time.sleep(2)
# 這個(gè)print其實(shí)沒事什么用,如果真的要測(cè)試腳本是否運(yùn)行成功,可以用try來拋出異常
print("簽到成功")
# 腳本運(yùn)行成功,退出瀏覽器
browser.quit()
定時(shí)任務(wù)代碼
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)
#時(shí)間到執(zhí)行方法
doFunc()
if __name__ == "__main__":
doFirst()
判斷當(dāng)前日期是否是節(jié)假日
1、接口地址:http://api.goseek.cn/Tools/holiday?date=數(shù)字日期
2、返回?cái)?shù)據(jù):工作日對(duì)應(yīng)結(jié)果為 0, 休息日對(duì)應(yīng)結(jié)果為 1, 節(jié)假日對(duì)應(yīng)的結(jié)果為 2
3、節(jié)假日數(shù)據(jù)說明:本接口包含2017年起的中國法定節(jié)假日數(shù)據(jù),數(shù)據(jù)來源國務(wù)院發(fā)布的公告,每年更新1次,確保數(shù)據(jù)最新
#獲取當(dāng)前時(shí)間 格式20180213
nowTime=time.strftime('%Y%m%d',time.localtime())
date = nowTime
#節(jié)假日接口
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')
根據(jù)當(dāng)前日期是否是節(jié)假日進(jìn)行,自動(dòng)簽到打卡案例
# -*- coding:utf-8 -*-
import json
import urllib.request
import datetime
# 方便延時(shí)加載
import time
from selenium import webdriver
SECONDS_PER_DAY = 24 * 60 * 60
##定時(shí)執(zhí)行的任務(wù)
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')#現(xiàn)在
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:
# 模擬瀏覽器打開網(wǎng)站
browser = webdriver.Chrome()
browser.get('http://***.***.***.***/')
# 將窗口最大化
browser.maximize_window()
# 根據(jù)路徑找到按鈕,并模擬進(jìn)行點(diǎn)擊
browser.find_element_by_id('btn').click()
# 延時(shí)2秒,以便網(wǎng)頁加載所有元素,避免之后找不到對(duì)應(yīng)的元素
time.sleep(2)
# 格式是PEP8自動(dòng)轉(zhuǎn)的
# 這里是找到輸入框,發(fā)送要輸入的用戶名和密碼,模擬登陸
browser.find_element_by_id(
"username").send_keys("123456")
browser.find_element_by_id(
"password").send_keys("123456")
# 在輸入用戶名和密碼之后,點(diǎn)擊登陸按鈕
browser.find_element_by_id('btn').click()
time.sleep(2)
# 點(diǎn)擊登陸后的頁面中的簽到,跳轉(zhuǎn)到簽到頁面
browser.find_element_by_id("signInCoin").click()
time.sleep(2)
# 這個(gè)print其實(shí)沒事什么用,如果真的要測(cè)試腳本是否運(yùn)行成功,可以用try來拋出異常
print("簽到成功")
# 腳本運(yùn)行成功,退出瀏覽器
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()
以上這篇Python3自動(dòng)簽到 定時(shí)任務(wù) 判斷節(jié)假日的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)爬取知乎神回復(fù)簡單爬蟲代碼分享
這篇文章主要介紹了Python實(shí)現(xiàn)爬取知乎神回復(fù)簡單爬蟲代碼分享,本文實(shí)現(xiàn)了爬取知乎的“如何正確地吐槽”收藏夾,是對(duì)個(gè)人的一個(gè)興趣實(shí)現(xiàn),需要的朋友可以參考下2015-01-01
在?pytorch?中實(shí)現(xiàn)計(jì)算圖和自動(dòng)求導(dǎo)
這篇文章主要介紹了在?pytorch?中實(shí)現(xiàn)計(jì)算圖和自動(dòng)求導(dǎo),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
分析運(yùn)行中的 Python 進(jìn)程詳細(xì)解析
這篇文章主要介紹了分析運(yùn)行中的 Python 進(jìn)程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
在Django中同時(shí)使用多個(gè)配置文件的方法
這篇文章主要介紹了在Django中同時(shí)使用多個(gè)配置文件的方法,Django是豐富多彩的Python web框架中人氣最高的一個(gè),需要的朋友可以參考下2015-07-07
Python實(shí)現(xiàn)緩存的兩個(gè)簡單方法
緩存是一種用于提高應(yīng)用程序性能的技術(shù),它通過臨時(shí)存儲(chǔ)程序獲得的結(jié)果,以便在以后需要時(shí)重用它們,本文將學(xué)習(xí)Python中的不同緩存技術(shù),感興趣的可以了解下2024-11-11
python爬蟲Mitmproxy安裝使用學(xué)習(xí)筆記
這篇文章主要介紹了python爬蟲Mitmproxy學(xué)習(xí)筆記分享,有需要的朋友可以收藏學(xué)習(xí)下,希望可以對(duì)你有所幫助,大家一起共同學(xué)習(xí),共同進(jìn)步2021-09-09

