有一个功能需求,每天在cacti上爬取昨天一整天的流量图,并将流量图上的min、max、average流量做成表格,用邮件发出。 (python2.7.5)
1、需要使用的模块
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import time,datetime,cookielib,requests,sys,re,urllib2,urllib,socket,csv,heapq
import smtplib
import mimetypes
import time
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.MIMEImage import MIMEImage
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
2、登陆cacti的函数
def Login1():
socket.setdefaulttimeout(10)
global headers
headers={}
cj = cookielib.CookieJar()
global opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# cacti使用的账号密码
data = urllib.urlencode( {'action':'login','login_username':'admin','login_password':'123456' })
# 打开cacti主页
page = urllib2.Request("http://100.0.102.3/index.php", data ,headers)
# 爬取页面数据
html = opener.open(page).read()
# 如果页面数据中有graph_settings.php链接,说明登陆成功(返回1),反之登陆失败(返回0)
if re.fi