最新文章:

首页 Python

Python模拟登陆健康打卡(更新)

发布时间:2020年03月15日 评论数:抢沙发 阅读数:72

    (新加了一个判断是否打卡的功能,可以加个twilion每天打卡成功给手机发个短信)

    最近疫情在家,学校在学生管理网站上开了一个健康打卡栏,要求每天中午12点前打卡。

    秉承着程序员懒惰的特性

    写了一个爬虫,首先模拟post请求登陆,cookie保存在session中,然后post健康打卡请求。

    通过抓包直接获得post的url和data 然后用python requests包进行发送就行。

    直接上源码

    import requests
    import sys
    import io
    import re
    
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码
    
    #登录时需要POST的数据
    data = r'{"ip":"0.0.0.0","city":"202.197.121.40","usercode":"学号","pwd":"密码"}'
    
    #设置请求头
    headers = {'User-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'}
    
    #登录时表单提交到的地址(通过抓包获取)
    login_url = 'http://iteaching.hunnu.edu.cn/Login/Login'
    
    #健康显示列表
    url = 'http://iteaching.hunnu.edu.cn/Student/yjs_stujkk/GetList_log'
    
    #健康?
    urlhealth = 'http://iteaching.hunnu.edu.cn/Student/yjs_stujkk/SaveInfo' #健康表单提交地址
    #健康提交表单
    datahealth = {'tval': '1',
                  'pntype': '8'}
    
    
    #构造Session会话
    session = requests.Session()
    
    #在session中发送登录请求,此后这个session里就存储了cookie
    session.post(login_url, data) #模拟登陆
    
    #提交健康打卡
    session.post(urlhealth,datahealth)
    
    #获取打卡后的健康列表
    resp = session.get(url)
    
    string = resp.content.decode('utf-8') #返回打开列表转string
    
    pattern = re.compile(r'\"bsubmit\": (.*?),') #正则匹配查看提交数目
    result = pattern.findall(string)
    print(result)
    flag = 0
    for i in result:
        if i  != '1': #如果存在未打卡则
            print("未打卡")
            flag = 1
            break
    if flag == 0:
        print("打卡成功") #打卡了
    
    
    

    因为采用的mac电脑所以直接就设置的crontab 每天早上自动执行爬虫打卡。https://www.jianshu.com/p/333d799aebb1

    如果是windows电脑可以参考:https://jingyan.baidu.com/article/a681b0dee8dcae7b19434623.html

二维码加载中...
本文作者:HDC      文章标题: Python模拟登陆健康打卡(更新)
本文地址:http://hdcin.cn/?post=312
版权声明:若无注明,本文皆为“小胖Blog's”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论