吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2311|回复: 23
收起左侧

[Python 转载] 利用python实现某大学德育评价批量处理

  [复制链接]
南岸 发表于 2020-9-20 22:13
本帖最后由 南岸 于 2020-9-20 22:15 编辑

一个一个评价容易累死,所以今天就写了这个小工具


截图:
QQ截图20200920221532.png

代码:
# -*- coding: utf-8 -*-
"""
home.php?mod=space&uid=238618 : 2020/9/20 11:32
@Auth : Ne-21
home.php?mod=space&uid=1416830 : 德育评测批处理
home.php?mod=space&uid=267492 :Hebust_dy.py
@IDE :PyCharm
@Motto:Another me.

"""
import requests
import time
import base64
import re
import html

class HebustDy(object):
    def __init__(self):
        self.stuNum = ''
        self.pwd = ''
        self.s = requests.Session()
        self.header = {
            'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 84.0.4147.105 Safari / 537.36'
        }

    def get_13_timestamp(self):
        timestamp1 = time.time()
        return int(round(timestamp1) * 1000)

    def get_vcode(self):
        imgurl = 'http://202.206.64.85/morality/verifyCode?d='+str(self.get_13_timestamp())
        web = self.s.get(imgurl, headers=self.header)
        img = base64.b64encode(web.content)
        imgdata = re.findall("b'(.*?)'", str(img))[0]
        img_data = base64.b64decode(imgdata)
        with open("./img.png", "wb") as fb:
            fb.write(img_data)
        vcode = input("请输入验证码:")
        return vcode

    def login(self):
        loginurl = 'http://202.206.64.85/morality/ajaxLogin'
        data = {
            'stuNum' : self.stuNum,
            'pwd' : self.pwd,
            'vcode' : self.get_vcode()
        }
        res = self.s.post(loginurl, headers=self.header, data=data)
        logindata = (res.json()).get('data')
        if logindata == True:
            print("login success!")
            pass
        else:
            print('login failure.')
            self.stuNum = input("请输入账号:")
            self.pwd = input('请输入密码:')
            return self.login()

    def get_student_list(self):
        listurl = 'http://202.206.64.85/morality/index'
        res = self.s.get(listurl, headers=self.header)
        # print(res.text)
        match = re.compile('<li class="mdui-list-item mdui-ripple" eid="(.*?)" status="0">')
        eidlist = re.findall(match, res.text)
        return eidlist

    def main(self):
        self.login()
        for eid in self.get_student_list():
            infourl = 'http://202.206.64.85/morality/evaluate?yid=2&id='+str(eid)
            res = self.s.get(infourl, headers=self.header)
            stuname = html.unescape(re.findall('<input type="hidden" name="evaluate\.stuname" value="(.*)" id="evaluate_stuname"/>', res.text)[0])
            ename = html.unescape(re.findall('<input type="hidden" name="evaluate\.ename" value="(.*?)" id="evaluate_ename"/>', res.text)[0])
            data = {
                'evaluate.id': str(eid),
                'evaluate.yid': 2,
                'evaluate.stuname': stuname,
                'evaluate.stuNum': (re.findall('<input type="hidden" name="evaluate\.stuNum" value="(.*?)" id="evaluate.stuNum"/>', res.text)[0]),
                'evaluate.stuId': (re.findall('<input type="hidden" name="evaluate\.stuId" value="(.*?)" id="evaluate_stuId"/>', res.text)[0]),
                'evaluate.status': 0,
                'evaluate.estuId': (re.findall('<input type="hidden" name="evaluate\.estuId" value="(.*?)" id="evaluate_estuId"/>', res.text)[0]),
                'evaluate.ename':  ename,
                'evaluate.estuNum': (re.findall('<input type="hidden" name="evaluate\.estuNum" value="(.*?)" id="evaluate_estuNum"/>', res.text)[0]),
                'evaluate.createTime': "",
                'yid': "2",
                'evaluate.politics': '1',
                'evaluate.study': '1',
                'evaluate.moral': '1',
                'evaluate.labor': '1',
                'evaluate.legal': '1',
                'evaluate.practice': '1'
            }
            posturl = 'http://202.206.64.85/morality/save?timestamp='+str(self.get_13_timestamp())
            self.s.post(posturl, headers=self.header, data=data)
            print('对象-->'+str(stuname)+',ID-->'+str(eid)+'---->完成评价!')
            time.sleep(2)
        print('已全部完成!')

if __name__ == '__main__':
    run = HebustDy()
    run.main()

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
mpr521 + 1 + 1 用心讨论,共获提升!
正己 + 1 + 1 赞一个

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 南岸 发表于 2020-9-21 19:27
mpr521 发表于 2020-9-21 17:36
楼主很厉害啊,你说的我明白了,我们是教务管理系统,有师生或者师师之间互评,跟你学习学习,对这个目前还 ...

我这个是针对于学生和学生之间的互评
 楼主| 南岸 发表于 2020-9-20 23:18
mpr521 发表于 2020-9-20 22:58
是数据库里的评价吗?可以将个人账号登入后看到的数据库评价吗?我一般都用按键精灵,似乎有点儿LOW啊

不是的,是有个网站,在里面进行评价
mpr521 发表于 2020-9-20 22:58
是数据库里的评价吗?可以将个人账号登入后看到的数据库评价吗?我一般都用按键精灵,似乎有点儿LOW啊
Ldfd 发表于 2020-9-20 23:01
竟然还有验证码
正己 发表于 2020-9-20 23:08
好家伙,这个有意思,学习了
QingYi. 发表于 2020-9-20 23:11
会Python是真的可以为所欲为
pwp 发表于 2020-9-20 23:14
楼主是某大学大学老师
 楼主| 南岸 发表于 2020-9-20 23:18
Ldfd 发表于 2020-9-20 23:01
竟然还有验证码

登陆有验证码的,不过很好解决
梦蛟龙 发表于 2020-9-20 23:19
官网首页很难看啊
 楼主| 南岸 发表于 2020-9-20 23:19
QingYi. 发表于 2020-9-20 23:11
会Python是真的可以为所欲为

哈哈哈哈哈哈哈,人生苦短,我用python
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-4 03:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表