python自动抓取指定信息_python登录cacti抓取服务信息图自动发周报

#/usr/bin/env python

# -*- coding: utf-8 -*-

import time,datetime,socket,urllib,urllib2,cookielib,re

import smtplib,string

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.p_w_picpath import MIMEImage

log_url='http://ip地址/cacti/'

HOST ="smtp.139.com" #定义smtp主机

SUBJECT = "locik周报" #定义邮件主题

TO = "11111111@qq.com,111111111@qq.com" #定义邮件收件人

TO_list = TO.split(",")

s_TO = string.splitfields(TO,",")

FROM = "1111111@139.com" #定义邮件发件人

def Time_Shifting():

threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 11))

otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S")

format_otherStyleTime = "%s 00:00:00" % otherStyleTime.split()[0]

global start

start=time.mktime(time.strptime(format_otherStyleTime,'%Y-%m-%d %H:%M:%S'))

threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 5))

otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S")

result = "%s 00:00:00" % otherStyleTime.split()[0]

global end

end=time.mktime(time.strptime(result,'%Y-%m-%d %H:%M:%S'))

return start,end

def Login():

cj = cookielib.CookieJar()

global opener

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

login_data = urllib.urlencode( {'action':'login','login_username':'用户名','login_password':'密码' })

page = opener.open(log_url,data = login_data )

html = page.read()

if re.findall("graphs_new.php",html):

print "ok"

else:

print "eerr"

page.close()

def list_url_186():

global list_186

list_186 = ["http://ip地址/cacti/graph_p_w_picpath.php?local_graph_id=78&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s"%(int(start),int(end)),

"http://ip地址/cacti/graph_p_w_picpath.php?local_graph_id=30&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s" %(int(start),int(end)),

"http://ip地址/cacti/graph_p_w_picpath.php?local_graph_id=31&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s" %(int(start),int(end)),

"http://ip地址/cacti/graph_p_w_picpath.php?local_graph_id=29&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s" %(int(start),int(end)),

]

def Get_Image():

count=0

for url in list_186:

print url

count+=1

img=opener.open(url)

print count

if count == 1:

file_object = open('img/186-1week-disk.png','wb')

file_object.write(img.read())

elif count == 2:

file_object = open('img/186-1week-CpuLoad.png','wb')

file_object.write(img.read())

elif count == 3:

file_object = open('img/186-1week-Network.png','wb')

file_object.write(img.read())

elif count == 4:

file_object = open('img/186-1week-Memory.png','wb')

file_object.write(img.read())

def addimg(src,imgid): #添加图片函数,参数1:图片路径,参数2:图片ID

fp = open(src,'rb') #打开文件

msgImage = MIMEImage(fp.read()) #创建MIMEImage对象,读取图片内容并作为参数

fp.close() #关闭文件

    msgImage.add_header('Content-ID',imgid) #指定图片文件的Content-ID,标签src用到

return msgImage #返回msgImage对象

def sendmail():

msg = MIMEMultipart('related') #创建MIMEMultipart对象,采用related定义内嵌资源的邮件体

msgtext = MIMEText("""

以下是ip地址系统状态图

    

    

    

    

""","html","utf-8") # 标签的src属性是通过Content-ID来引用的

msg.attach(msgtext) #MIMEMultipart对象附加MIMEText的内容

msg.attach(addimg("img/186-1week-Network.png","network")) #使用MIMEMultipart对象附加MIMEImage的内容

msg.attach(addimg("img/186-1week-CpuLoad.png","load"))

msg.attach(addimg("img/186-1week-Memory.png","mem"))

msg.attach(addimg("img/186-1week-disk.png","disk"))

msg['Subject'] = SUBJECT

msg['FROM']=FROM

msg['To'] = TO

try:

server = smtplib.SMTP()

server.connect(HOST,"25")

server.starttls()

server.login('11111111@139.com','密码')

server.sendmail(FROM,TO_list,msg.as_string())

server.quit()

print "邮件发送成功!"

except Exception,e:

print "失败:"+ str(e)

print type(TO)

def main():

Time_Shifting()

Login()

list_url_186()

Get_Image()

sendmail()

if __name__ == '__main__':

main()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值