前面已经写过Python3发邮件,Python发微信的文章了。直接导入即可。

import configparser,requests
from time import sleep
import WeChat,Mail

class checkurl(object):
	def __init__(self,file):
		self.file=file
		self.cfg=configparser.ConfigParser()
		
	def cfg_load(self):
		self.cfg.read(self.file)
		self.allurl=self.cfg.items('yuming')
		self.reload=self.cfg.get('time','reload')
		self.mailto=self.cfg.items('mailto')
		
	def sendmessage(self,errinfo):
		wechat.send('@all',errinfo)
		for key,values in self.mailto:
			mail.send(values,errinfo,'url访问失败报警')
			
	def cfg_dump(self):
		while True:
			for k,v in self.allurl:
				checknum=0
				#设置重试错误次数
				while checknum < 5:
					try:
						res=requests.get(v)
						print(v,res.status_code)
						res.close()
						if res.status_code >= 400:
							errinfo=v+' '+str(res.status_code)
							self.sendmessage(errinfo)
						break
					except:
						errinfo=v+' is error'
						print(errinfo+'\r\n请稍等,正在第',checknum+1,'次重试...')
						sleep(1)
						if checknum == 4:
							print('重试仍然无法连接,正在发送微信和邮件报警...')
							self.sendmessage(errinfo)
					checknum=checknum+1
			print('-----------------------------------')
			nextcheck=0
			while nextcheck < int(self.reload):
				print('距离下次检测还剩',int(self.reload)-nextcheck,'秒')
				sleep(1)
				nextcheck=nextcheck+1

if __name__ =='__main__':
	mail=Mail.sendmail()
	wechat=WeChat.WeChat()
	check=checkurl('yuming.ini')
	check.cfg_load()
	check.cfg_dump()	


下面是yuming.ini的配置

[yuming]
yuming1=https://www.baidu.com
yuming2=http://www.qq.com
yuming3=http://www.163.com
 
[time]
reload=60
 
[mailto]
[email protected]
[email protected]