网络编程
位置:首页>> 网络编程>> Python编程>> Python3自动签到 定时任务 判断节假日的实例

Python3自动签到 定时任务 判断节假日的实例

作者:行内小白  发布时间:2022-11-15 15:48:48 

标签:Python3,签到,节假日

不废话,直接上代码Python3.6

签到代码,只需修改url,账号,密码即可,此处是登录时无验证登录,有验证码的自行补充



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

# 模拟浏览器打开网站
browser = webdriver.Chrome()
browser.get('http://**.**.121.54/')
# 将窗口最大化
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()

来源:https://blog.csdn.net/qq1012566550/article/details/81660169

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com