基于腾讯云函数+微信WXPUSHER推送
1. 注册微信WXPUSHER,获得WXPUSHER_appToken和 WXPUSHER_uid;
2. 基于浏览器获取打卡页面参数,基于python 3.6
# -*- coding: UTF-8 -*-
import requests
def main(id='main'):
#######################################
USERNAME = 'XXXXXXX'#账号
PASSWORD = 'XXXXXXX'#密码
FORMDATA = 'sfzx=1&tw=2&area'
WXPUSHER_appToken='AT_XXXXX'
WXPUSHER_uid='UID_XXXXX'
### ATTENTION!!!
#数据获取方式:浏览器中打开晨午晚检-》(登录)==》右键审查元素(或F12)==》网络==》填写表格后点击提交==》网络中出现一个新名称:save ==》点击该名称==》右侧找到查询字符串参数==》点击 查看源 ==》复制所有数据
#WXPUSHER网站可以获取appToken和uid
#######################################
url = "https://xxxx/login?"
resp = requests.get(url)
eai_sess = resp.headers['Set-Cookie'].split(";")[0]
#登录,获取cookie
url2 = "https://xxxx/login/check"
print("账号:" + USERNAME)
print("密码:" + PASSWORD)
data = "username=" + USERNAME + "&password=" + PASSWORD
headers = {
"Host": "xxcapp.xidian.edu.cn",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55",
"Accept": "application/json, text/javascript, */*; q=0.01",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"Accept-Encoding": "gzip, deflate, br",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest",
"Origin": "https://xxxx",
"Connection": "keep-alive",
"Referer": "https://xxxx/login?",
"Cookie": eai_sess
}
resp2 = requests.post(url2, data=data, headers=headers)
#print(resp2.text)
if "操作成功" in resp2.text:
print("登录成功,已获取cookie")
else:
print("登录失败!")
#上报数据
load_data = FORMDATA
url = "https://xxxx/wap/open-report/save"
login_cookies = eai_sess
headers = {
"Host": "xxcapp.xidian.edu.cn",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:72.0) Gecko/20100101 Firefox/72.0 micromessenger",
"Accept": "application/json, text/javascript, */*; q=0.01",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"Accept-Encoding": "gzip, deflate, br",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest",
"Origin": "https://xxcapp.xidian.edu.cn",
"Connection": "keep-alive",
"Referer": "https://xxxx/default/index",
"Cookie": login_cookies
}
resp = requests.post(
url=url,
headers=headers,
data=load_data
);
# WXPUSHER通知
sendmsg_url0="http://wxpusher.zjiecode.com/api/send/message/?appToken="+WXPUSHER_appToken+"&content="
sendmsg_url2="&uid="+WXPUSHER_uid
retstr = resp.text
#print (retstr)
if "您已打卡" in retstr:
print("今日已打卡\n")
sendmsg_url=sendmsg_url0+"已打卡"+sendmsg_url2
sendmsg_recall=requests.get(url=sendmsg_url)
#print(sendmsg_recall)
elif "操作成功" in retstr:
print("打卡成功!\n")
sendmsg_url=sendmsg_url0+"打卡成功"+sendmsg_url2
sendmsg_recall=requests.get(url=sendmsg_url)
#print(sendmsg_recall)
else:
print("打卡失败!!!\n")
sendmsg_url=sendmsg_url0+"打卡失败!!!"+sendmsg_url2
sendmsg_recall=requests.get(url=sendmsg_url)
#print(sendmsg_recall)
#main();
def main_handler(event, context):
main();
3. 注册腾讯云,将自动打卡程序上传腾讯云函数;
4.设置触发条件;