python潦草实现url模拟登陆并发送微信告警消息

[root@centos wangyunlong]# cat url_status.py 
#!/bin/python3
import time
import requests
import json
##################################################################
server = {
    '组卷MaTh':['url','','','蒋'],
    '统计MaTh':['url','','','敏特数学数据统计后台'],
    '招生MaTh':['url','010zs003','123456','北京大学'],
    '附中MaTh':['url','','','五年级(思维训练)'],
    '公网MaTh':['url','13','123','李帅'],
    '三亚MaTh':['url','010xcrsyyd10010','123456','nosetname10'],
    '盘龙MaTh':['url:7780','14','123','骞寸骇'],
    '玉溪MaTh':['url:9999','mtjyadmin_yuxi','123456','玉溪市教育局'],
    '百年MaTh':['url','test100yingcai0097','891293','解法分析'],
    '百年PGTc':['url','test100yingcai0097','891293','解法分析'],
    '五华MaTh':['url','yntest0036','577040','李如玲'],
    '甘肃MaTh':['url:8080','13','123','mintel001'],
    '福建MaTh':['url','LSC16000','489898','厦门蓝思'],
    '海南MaTh':['url','MYC15400','938179','海南敏阳'],
    '山西MaTh':['url','14','123','骞寸骇'],
    'yun3MaTh':['url','FLD04901','619094','福兰德科技'],
    #'测试Math':['url','13','123','刘六']      
}
###################################################################
            
class url():
    def __init__(self,domain_name='yun.mintelcn.com',user='13',passwd='123',inde='李帅'):
        self.domain_name = domain_name
        self.user = user
        self.passwd = passwd
        self.inde = inde
        self.se = requests.Session()
    
    def login(self):

        if self.domain_name == '60.205.191.64' or self.domain_name == 'pg.mintelcn.com':
            login_url = 'http://' + self.domain_name + '/MintelRev/servlet/MintBainianServlet'
            url = 'http://'+ self.domain_name + '/MintelRev/servlet/MintBainianServlet?Pid=2018index_high_pg4&termid=95#local'
            data={"userId":self.user,"password":self.passwd,"Pid": "pg_index1"}
            try:
                ssid = self.se.post(login_url,data,timeout=10)
                resp = self.se.get(url,timeout=10)
            except Exception as e:
                  return 'Failure'

        elif self.domain_name == 'zs.mintelcn.com':
            login_url = 'http://' + self.domain_name + '/MintelRev/servlet/ZiZhuZhaoShengServlet'
            url = 'http://'+ self.domain_name + '/MintelRev/servlet/ZiZhuZhaoShengServlet?Pid=school&schoolId=32'
            data={"userId":self.user,"password":self.passwd,"Pid": "login"}
            try:
                ssid = self.se.post(login_url,data,timeout=10)
                resp = self.se.get(url,timeout=10)
            except Exception as e:
                return 'Failure'
            

        elif self.domain_name == 'qhfz.mintelcn.com':
            url = 'http://'+ self.domain_name + '/PrimaryThinking/index/pattren_index_stu.action?user_id=010qhfz6251'
            try:
                resp = requests.get(url,timeout=10)
            except Exception as e:
                return 'Failure'
        elif self.domain_name == '114.215.78.32':
            try:
                resp = requests.get('http://' + self.domain_name + '/MintelAnalytics/user/toLogin.action',timeout=10)
            except Exception as e:
                return 'Failure'
        elif self.domain_name == 'jz.quizii.com':
            try:
                resp = requests.get('http://jz.quizii.com/math/teaching_center?info={"result":"00","relName":"蒋","cityName":"北京市","sex":0,"proName":"北京省","userType":"001","message":"","schoolGid":"","schoolName":"敏特测试学校","userid":"","classList":[{"gradeName":"","subjectGid":"","className":"12312","gradeGid":"","classGid":"pgsx01","subjectName":"math"},{"gradeName":"","subjectGid":"","className":"02","gradeGid":"","classGid":"02","subjectName":"math"},{"gradeName":"","subjectGid":"","className":"03","gradeGid":"","classGid":"03","subjectName":"math"},{"gradeName":"","subjectGid":"","className":"04","gradeGid":"","classGid":"04","subjectName":"math"},{"gradeName":"","subjectGid":"","className":"05","gradeGid":"","classGid":"05","subjectName":"math"}],"username":"jiangminghe"}&districtName=gongwang',timeout=10)
            except Exception as e:
                return 'Failure'
        else:
            login_url = 'http://' + self.domain_name + '/MintelRev/servlet/MiddlemathServlet'
            data={"userId":self.user,"password":self.passwd,"Pid": "period2"}
            url = 'http://'+ self.domain_name + '/MintelRev/servlet/MiddlemathServlet?Pid=index_middle&termid=24&levelKbn=level1'
            try:
                ssid = self.se.post(login_url,data,timeout=10)
                resp = self.se.get(url,timeout=10)
            except Exception as e:
                return 'Failure'
        a = resp.content.decode('utf-8').find(self.inde)
        if a != -1:
            return 'Success'
        return 'Failure'
###################################################################
def main():
    def weixin(weixin_data):
        url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxf4c13f70d44c40b0&corpsecret=fnVOB8Beni7HGHvzX3tET4md0vF_gYrbD8WamDdOd2E'
        access_token1=requests.get(url)
        request_json = access_token1.json()
        access_token = request_json['access_token']
        send_message_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s'%(access_token)
        me = {"touser":'@all',"msgtype":"text", "agentid":1000004,"text":{ "content":weixin_data},"safe":0}
        fs=requests.post(send_message_url,data=json.dumps(me))

    S_statu = []
    for key in server:
        domain_name = server[key][0]
        user = server[key][1]
        passwd = server[key][2]
        inde = server[key][3]
        app = url(domain_name,user,passwd,inde)
        status = app.login()
        S_statu.append('{"%s":"%s"}'%(key,status))
    sun=['---敏特数学服登录检查报告---']
    for i in S_statu:
        if i.find('Failure') != -1:
             servers={}
             x = json.loads(i)
             x = list(x.keys())[0]
             servers[x]=server[x]
             domain_names = servers[x][0]
             users = servers[x][1]
             passwds = servers[x][2]
             indes = servers[x][3]
             H = 2
             while H < 6: 
                 time.sleep(5)  
                 apps = url(domain_names,users,passwds,indes)
                 statuss = apps.login()
                 if statuss != 'Success':
                     H += 1
                     continue
                 else:
                     sun.append('%s登录[%s]次:%s'%(x,H,'Success'))
                     break
             print('H:%s'%H)
             if H == 6:
                 H = H - 1
                 sun.append('%s登录[%s]次:%s'%(x,H,'Failure'))
        else:
            i=json.loads(i)
            i=list(i.keys())[0]
            sun.append('%s登录[1]次:%s'%(i,'Success'))
    weixin_data = '\n'.join(sun)
    print(weixin_data)
    weixin(weixin_data)
########################################################################        
if __name__ == '__main__':
    main()

转载于:https://my.oschina.net/wangyunlong/blog/3068680

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值