美文网首页程序园
常熟理工学院内网打卡查询代码

常熟理工学院内网打卡查询代码

作者: 空巷丨 | 来源:发表于2019-04-30 13:19 被阅读8次

打卡查询

代码

import requests
import http.cookiejar
import urllib
from bs4 import BeautifulSoup
import os

def search(username):
    url = "http://10.28.102.51/student/checkUser.jsp?userName=%s&passwd=%s" % (username, username)
    req=urllib.request.Request(url)
    cj=http.cookiejar.CookieJar()
    opener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    r=opener.open(req)

    get_url="http://10.28.102.51/student/queryExerInfo.jsp"
    get_request=urllib.request.Request(get_url)
    get_response=opener.open(get_request)
    data=get_response.read()
    soup=BeautifulSoup(data,"html.parser")
    table=soup.find_all("table",attrs={"class":False,"border":"0","cellpadding":"0","cellspacing":"0","width":"100%"})[1]
    tr=table.find_all("tr")[2]

    kind=tr.find_all("td")[1]
    tds=kind.find_all("td")

    datas={}
    datas["早操"]=tds[2].getText().split(" ")[0].split("\xa0")[1]

    datas["体育俱乐部考勤"]=tds[4].getText().split(" ")[0].split("\xa0")[1]

    datas["引体向上考勤"]=tds[6].getText().split(" ")[0].split("\xa0")[1]

    datas["篮球比赛"]=tds[8].getText().split(" ")[0].split("\xa0")[1]

    datas["田径"]=tds[10].getText().split(" ")[0].split("\xa0")[1]

    datas["运动会单项"]=tds[12].getText().split(" ")[0].split("\xa0")[1]

    datas["竞赛管理"]=tds[14].getText().split(" ")[0].split("\xa0")[1]

    datas["考勤4"]=tds[16].getText().split(" ")[0].split("\xa0")[1]

    datas["考勤5"]=tds[18].getText().split(" ")[0].split("\xa0")[1]

    datas["增加次数"]=tds[20].getText().split(" ")[0].split("\xa0")[1]

    datas["共打卡"]=0;
    for value in datas.values():
        datas["共打卡"]+=int(value)
    datas["共打卡"]/=2
    datas["共打卡"]=int(datas["共打卡"])
    return datas

if __name__=="__main__":
    print("请输入学号:")
    username=input()
    print("正在查询……")
    datas=search(username)
    for key in datas.keys():
        print(key+":"+str(datas[key])+"次")
    print("查询结束")
    input()

程序思路

分析网页

[1.打卡查询登录页面]
[2.登录后跳转的页面]
[3.实际打卡信息页面]

页面1是登录页面,登录成功后跳转到页面2,然后点击查看体锻信息跳转到页面3。我们想获取打卡数据首先得通过登录页面到达实际打卡信息页面。所以我们就得获得登录后的cookie,用来唯一标识用户身份。再利用该cookie直接请求第三个页面。

实际操作:

  • 发送request登录请求
  • 获取response返回cookie
  • 创建新的request请求赋予得到的cookie
  • 分析再次返回的response数据,获取自己想要的数据

相关文章

  • 常熟理工学院内网打卡查询代码

    打卡查询 代码 程序思路 分析网页 [1.打卡查询登录页面][2.登录后跳转的页面][3.实际打卡信息页面] 页面...

  • 常熟园

    今天去常熟理工学院

  • 端口常用命令

    查询 IP 地址 外网地址查询 在百度搜索框中搜索【IP地址查询】 内网地址查询:Windows 查询 Mac 查...

  • Python学习笔记——天气查询代码

    天气查询代码1 天气查询代码2 天气查询代码3 天气查询代码4

  • python之requests库的简单应用

    利用requests库实现公司打卡记录查询,具体代码如下: 以下是实现效果:

  • 22.实用装逼控制台技术

    一、查询本机内网ip 二、探测网络到达时效 三、查询dns解析 四、最终数据路由包路径 五、ip地址和地域查询 h...

  • IP查询

    外网IP查询网站http://www.ip138.com/内网IP地址cmd ipconfig

  • Mac内外网同时使用

    需求:使用WIFI上外网,同时使用网线连接内网,方便外网查询开发资料的同时不影响内网环境下的开发 准备 由于mac...

  • 2020江浙沪高校推荐(七)

    常熟理工学院:位于江苏省苏州市常熟市,地理位置优越。作为理工类院校还是可以的,毕业生可以在苏锡常镇等地区获得较好的...

  • Gitlab 版本管理,备份代码

    背景:代码需要在内网上进行备份,以便于运维同事进行测试。目标:上传代码至内网git上,做好版本管理。 1、GIT基...

网友评论

    本文标题:常熟理工学院内网打卡查询代码

    本文链接:https://www.haomeiwen.com/subject/dxamnqtx.html