欢迎来到Python教程自学网!
当前位置: 首页 > Python基础教程 > python实战之疫情期间学校云打卡系统

python实战之疫情期间学校云打卡系统

   

python实战之疫情期间学校云打卡系统

1.安装python

可以直接下载Python主页,需要路径环境配置,最好下载简单的编辑器。也可以在anaconda平台环境下下载配置,平台自动捆绑Spyder。本文操作使用的是anaconda安装的Python3.7.anaconda是开源的包、环境管理器,可以在同一个机器上安装不同版本的包和依赖,可以在不同的环境中切换。

2.代码示例

import requests

def school_clock(inputAccount , inputPassword , firstLocation , lastLocation ):
    ################# 第一个界面:进入登陆界面 ######################
    myHeaders1 = {
        'User-Agent': 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 '
        #该页面只允许手机端登录
    }
    url = 'https://nco.zjgsu.edu.cn/genqrcode/2019032'
    r1 = requests.post(url, headers=myHeaders1) 
    ################# 第一个界面:进入登陆界面后的登录操作 ######################
    myHeaders2 = {
        'Upgrade-Insecure-Requests': '1',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Cookie': 'zjgsusessionsid=s%3AGSYaaVwF_2pedsizsHYTYSY64hVl3vL_.NMnLf1bV1PJSAS%2FeZXUkcyPkFpBq%2BcMVQYq4XPHXAAU; _ncov_uuid=a59e0ac8-da06-4fb1-83d8-000976c317a9; _ncov_username=这里直接填入账号; _ncov_psswd=这里直接填入密码',
        'User-Agent': 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 '
    }
    myHeaders2['Cookie'] = r1.headers['set-cookie']
    payload = {
        'name': ' ',
        'psswd': ' '
    }
    payload['name'] = inputAccount
    payload['psswd'] = inputPassword
    url = 'https://nco.zjgsu.edu.cn/login'
    r2=requests.post(url, data=payload, headers=myHeaders2)#登录操作

    ################# 第二个界面:填写报送信息 ######################
    myHeaders3 = {
        'Upgrade-Insecure-Requests': '1',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Cookie': 'zjgsusessionsid=s%3AOIlBmUda3tnT-fWds6uWEKKADgTt3IAd.zQ1LcseRzDNFPv5EU1AlkyyWeSMz6424x6HK8cbov8Q; _ncov_uuid=03d31c9b-696f-4429-a0ca-6e2b7a2e10ce; _ncov_username=这里也是直接输入账号; _ncov_psswd=这里也是直接输入密码',
        'User-Agent': 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 '
    }
    myHeaders3['Cookie'] = r2.headers['set-cookie']
    payload2 = {
        'uuid': 'a59e0ac8-da06-4fb1-83d8-000976c317a9',
        'locationInfo': '%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82',
        'currentResd': '%E6%B5%99%E6%B1%9F%E7%9C%81%E6%B8%A9%E5%B7%9E%E5%B8%82%E9%BE%99%E6%B8%AF%E5%B8%82%E4%B8%B4%E6%B8%AF%E8%B7%AF862%E5%8F%B7',
        'fromHbToZjDate': '',
        'fromHbToZj': 'C',
        'fromWtToHzDate': '',
        'fromWtToHz': 'B',
        'meetDate': '',
        'meetCase': 'C',
        'travelDate': '',
        'travelCase': 'D',
        'medObsvReason': '',
        'medObsv': 'B',
        'belowCaseDesc': '',
        'belowCase': 'D',
        'temperature': '',
        'notApplyReason': '',
        'hzQRCode': 'A',
        'specialDesc': ''
    }
    payload2['locationInfo'] = firstLocation
    payload2['currentResd'] = lastLocation
    url = 'https://nco.zjgsu.edu.cn/'
    r3 = requests.post(url, data=payload2, headers=myHeaders2)
    print(r3.text)
##################调用上述打卡函数######################
school_clock(inputAccount = '这里直接输入账号' ,inputPassword = '这里直接输入密码' ,firstLocation = '这里输入省市地区,如江苏省徐州市' ,lastLocation = '这里输入详细地址,如江苏省徐州市云龙区XXX大学' )

3.附加说明

(1)以上代码使用函数实现。

(2)以上代码中有8个数据需要用户自己输入数据的存储也可以使用txt文件,使用mysql实现数据库,这里由于数据有限而直接分配。

(3)注意:不同学校提交的打卡页面可能略有不同,需要用户自己修改post参数,这类网页只能通过手机端进入,若要查看这类网页的开发者模式,必须要带上旧版手机浏览器的User-Agent(eg:”Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1”)