当前位置: 移动技术网 > IT编程>脚本编程>Python > Python3自动签到 定时任务 判断节假日的实例

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

2018年11月26日  | 移动技术网IT编程  | 我要评论

七旬大爷执意离婚,大学论坛大全,朱明国文强称兄道弟

不废话,直接上代码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()

以上这篇python3自动签到 定时任务 判断节假日的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网