不废话,直接上代码Python3.6
签到代码,只需修改url,账号,密码即可,此处是登录时无验证登录,有验证码的自行补充
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# -*- 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() |
定时任务代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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次,确保数据最新
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#获取当前时间 格式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' ) |
根据当前日期是否是节假日进行,自动签到打卡案例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# -*- 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自动签到 定时任务 判断节假日的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq1012566550/article/details/81660169