该脚本一直监测网络连接情况,若出现断网情况,自动连接网络。
话不多说,直接贴代码:
NetLogin.py
1 #coding: utf-8 2 3 import requests 4 import time 5 import datetime 6 import sys 7 8 reload(sys) 9 sys.setdefaultencoding("utf-8") 10 11 class NetLogin: 12 13 def __init__(self): 14 self.login_url = 'http://p.nju.edu.cn/portal_io/login' 15 self.info_url = 'http://p.nju.edu.cn/portal_io/getinfo' #登录状态下获取,方式:get 16 self.logout_url = 'http://p.nju.edu.cn/portal_io/logout' 17 self.headers = { 18 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 19 'Referer': 'http://p.nju.edu.cn/', 20 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36', 21 'X-Requested-With': 'XMLHttpRequest' 22 } 23 24 self.form_data = { 25 'username': 'MGxxxxxxx', 26 'password': 'xxxxxx' 27 } 28 self.timeout = 5 29 30 self.test_url = 'http://www.baidu.com/' 31 self.testStr = "030173" 32 33 34 def net_test(self): 35 try: 36 s = requests.session() 37 r = s.get(self.test_url, headers=self.headers, timeout=self.timeout) 38 pos = r.content.find(self.testStr) 39 if pos >= 1: 40 #print 'Internet Ok' 41 return 'Internet Ok' 42 else: 43 #print 'Internet Wrong' 44 return 'Internet Wrong' 45 except Exception, e: 46 print e 47 48 49 50 51 def create_session(self): 52 s = requests.session() 53 return s 54 55 def login(self): 56 s = self.create_session() 57 r = s.post(self.login_url, self.form_data, headers=self.headers) 58 if r.json()['reply_code'] == 1: 59 print r.json()['reply_msg'] 60 return r.json()['reply_msg'] 61 else: 62 #print u"login failed" 63 return u"login failed" 64 65 #获取登录信息,需要完成登录后执行该函数 66 def getInfo(self): 67 s = self.create_session() 68 r = s.get(self.info_url, headers=self.headers) 69 70 #网络注销 71 def logout(self): 72 s = self.create_session() 73 r = s.post(self.logout_url, headers=self.headers) 74 75 76 if __name__ == "__main__": 77 net = NetLogin() 78 signal = net.net_test() 79 #log = open('netlog.txt', 'a') 80 while True: 81 if signal == 'Internet Ok': 82 #s = str(datetime.datetime.now()) 83 print datetime.datetime.now() 84 print signal 85 ''' 86 log.write(s) 87 log.write(' ') 88 log.write(signal) 89 log.write(' ') 90 ''' 91 92 else: 93 #s = str(datetime.datetime.now()) + ':' 94 print signal 95 str = net.login() 96 print datetime.datetime.now() 97 print str 98 ''' 99 log.write(s) 100 log.write(' ') 101 log.write(str) 102 log.write(' ') 103 ''' 104 time.sleep(1) 105 signal = net.net_test() 106 ''' 107 num += 1 108 if num == 5: 109 flag = False 110 ''' 111 112 #log.close()