日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python自动截图发送邮件_PhantomJS按尺寸截取页面,并用python发送邮件

發(fā)布時(shí)間:2025/3/8 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动截图发送邮件_PhantomJS按尺寸截取页面,并用python发送邮件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:當(dāng)前有個(gè)任務(wù)是要把幾個(gè)網(wǎng)站的日志返回狀態(tài)碼進(jìn)行匯總,用餅圖展示,并每天發(fā)送郵件。

一、分析問題

畫出餅圖,這個(gè)我用kibana給畫出來了,下面不做講解;

截取餅圖,因?yàn)閗ibana是用js展示出來的,而不真的是一張jpg的圖片,如何截取你想要的圖片;

發(fā)送截圖,想到利用python發(fā)送郵件,但發(fā)出來總是以附件形式,而我想直接在郵件里展示截圖;

知道問題了,下面講具體的解決問題過程

二、安裝 PhantomJS

PhantomJS介紹:PhantomJS是一個(gè)基于 WebKit 的服務(wù)器端 JavaScript API。它全面支持web而不需瀏覽器支持,其快速,原生支持各種Web標(biāo)準(zhǔn): DOM 處理, CSS 選擇器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 頁(yè)面自動(dòng)化 , 網(wǎng)絡(luò)監(jiān)測(cè) , 網(wǎng)頁(yè)截屏 ,以及 無界面測(cè)試 等。

1. 安裝依賴包

yum install gcc gcc-c++ make git openssl-devel freetype-devel fontconfig-devel

2. 下載 phantomjs

git clone git://github.com/ariya/phantomjs.git

3. 編譯 phantomjs

cd phantomjs

git checkout 1.9

./build.sh

此過程比較耗時(shí),可以先去打個(gè)飛機(jī),編譯完這個(gè)目錄大概有700多M

4. 測(cè)試

cat baidu.js

var page = require('webpage').create();

page.open('http://www.baidu.com', function () {

page.render('baidu.png');

phantom.exit();

});

運(yùn)行

./phantomjs/bin/phantomjs baidu.js

可以看到本地生產(chǎn)的baidu.png

baidu

看,它會(huì)把整個(gè)頁(yè)面給截下來,下面我們繼續(xù)進(jìn)行細(xì)致的截圖。

三、按要求截圖

先看看原網(wǎng)頁(yè)

kibana

我們只要中間的餅圖和它上面的一行狀態(tài)碼數(shù)量統(tǒng)計(jì),

1. 改善腳本1

cat kibana.js

var page=require('webpage').create();

var address='http://log.xxx.cn/#/dashboard/file/sla.json'; // 設(shè)置url

var output='kiban.png'; // 設(shè)置保存文件名

page.viewportSize={width:1024,height:800}; // 設(shè)置查看頁(yè)面的分辨率

page.open(address,function(status){

if(status!=='success'){

console.log('Unabletoloadtheaddress!');

phantom.exit();

}else{

window.setTimeout(function(){

page.clipRect={top:170, left:10, height: 330, width: 980}; // 設(shè)置頁(yè)邊距,從而獲取想要的圖片,需要慢慢調(diào)整

page.render(output); // 保存圖片

phantom.exit();

},20000);

}

});

運(yùn)行,可以得到如下圖:

Paste_Image.png

你也可以只要中間的餅圖,為了方便用同樣的方法獲得其他網(wǎng)頁(yè)的統(tǒng)計(jì)截圖,再次修改下腳本

2. 改善腳本2

cat kibana.js

var page=require('webpage').create();

var address = phantom.args[0];

var output = phantom.args[1];

page.viewportSize={width:1024,height:800}; // 設(shè)置查看頁(yè)面的分辨率

page.open(address,function(status){

if(status!=='success'){

console.log('Unabletoloadtheaddress!');

phantom.exit();

}else{

window.setTimeout(function(){

page.clipRect={top:170, left:10, height: 330, width: 980}; // 設(shè)置頁(yè)邊距,從而獲取想要的圖片,需要慢慢調(diào)整

page.render(output); // 保存圖片

phantom.exit();

},20000);

}

});

如上,我們把url和文件名改成接收參數(shù)

運(yùn)行:

./phantomjs/bin/phantomjs kibana.js http://log.xxx.cn/#/dashboard/file/sla.json kibana.png

我們只需要變換url和文件名,就可以獲得其他統(tǒng)計(jì)圖,完成后我們把它加到郵件發(fā)出去

四、發(fā)送郵件

python發(fā)郵件沒啥好說的,網(wǎng)上有很多腳本,我也是在網(wǎng)上擼的腳本,剛開始郵件是能發(fā),但是發(fā)的圖片總是以附件形式展示,而不是打開郵件就能看到截圖,在網(wǎng)上找了好久終于找到 Python/Perl 如何在HTML郵件正文中嵌入本地圖片,原來要先把圖片插入html頁(yè)面,然后以html形式發(fā)送郵件,最后腳本如下:

cat send_page.py

#!/usr/bin/env python

#coding:utf8

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.base import MIMEBase

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email import encoders

import sys

import os

from datetime import *

# 定義函數(shù)

def send_mail(to_list, sub):

me = mail_user + ""

msg = MIMEMultipart()

msg['Subject'] = sub

msg['From'] = me

msg['To'] = "".join(to_list)

# 生成不同的url,并通過/root/kibana.js 生成不同的png圖片

for i in ('node', 'mapi', 'api', 'yunying-sla'):

os.system("/root/phantomjs/bin/phantomjs /root/kibana.js http://log.xxx.cn/#/dashboard/file/%s.json %s.png" % (i,i))

#二進(jìn)制模式讀取圖片,并綁定到郵件頭

with open(i+'.png', 'rb') as fp:

img = MIMEImage(fp.read())

img.add_header('Content-ID', i)

msg.attach(img)

# kibana會(huì)收集從此刻算起前24小時(shí)的數(shù)據(jù),我在郵件開頭記錄時(shí)間間隔,

d = datetime.now()

dt = d.strftime('%Y-%m-%d %H:%M:%S')

at = (d - timedelta(1)).strftime('%Y-%m-%d %H:%M:%S')

timezone = at + ' ~ ' + dt

#構(gòu)造html

html = """\

采集時(shí)間: """ + timezone + """

node

[img src="cid:node" alt="node">

mapi

[img src="cid:mapi" alt="mapi" >

api

[img src="cid:api" alt="api" >

yunying

[img src="cid:yunying-sla" alt="yunying-sla" >

"""

# 請(qǐng)把 [img 換成

context = MIMEText(html,_subtype='html',_charset='utf-8') #定義發(fā)送的形式和編碼格式,這里以html形式發(fā)送

msg.attach(context)

try:

send_smtp = smtplib.SMTP()

send_smtp.connect(mail_host)

send_smtp.login(mail_user, mail_pass)

send_smtp.sendmail(me, to_list, msg.as_string())

send_smtp.close()

return True

except Exception, e:

print str(e)[1]

return False

# 設(shè)置服務(wù)器名稱、用戶名、密碼以及郵件后綴

mail_host = 'smtp.xxx.com'

mail_user = 'jianwen.lu@xxx.com'

mail_pass = '8888888888'

mail_postfix = "xxx.com"

#mailto_list = ["763836801@qq.com","jianwen.lu@weimob.com"]

mailto_lists = sys.argv[1]

mailto_list = mailto_lists.split(',') #發(fā)送多人

sub= sys.argv[2]

# send_mail

if send_mail(mailto_list, sub):

print "Send mail succed!"

else:

print "Send mail failed!"

運(yùn)行:

python send_sla.py jianwen.lu@xxx.com "網(wǎng)站服務(wù)狀態(tài)sla"

由于es查詢?nèi)罩?#xff0c;并給kibana展示需要花點(diǎn)時(shí)間,所以你最好去打個(gè)飛機(jī)再來

我們收下郵件:

mail

點(diǎn)擊藍(lán)色字體,還可以直接去頁(yè)面看

好了,至此,做好計(jì)劃任務(wù),等著每天發(fā)圖了,啦啦啦。

總結(jié)

以上是生活随笔為你收集整理的python自动截图发送邮件_PhantomJS按尺寸截取页面,并用python发送邮件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一级做 | 91黄色免费观看 | 91视频插插插 | 国产精品另类 | 东京干手机福利视频 | 日一区二区 | 少妇做爰免费理伦电影 | 欧美午夜视频在线观看 | 色 综合 欧美 亚洲 国产 | 免费黄色看片网站 | 一级大黄色片 | 日本女人性视频 | 致命魔术电影高清在线观看 | 午夜激情成人 | 日韩av在线中文字幕 | 精品国产aⅴ一区二区三区东京热 | 亚洲免费在线观看视频 | 亚洲网站免费 | 青草91 | 看污网站| 午夜免费体验区 | 蜜桃在线一区二区 | 亚洲男人天堂2022 | 在线免费观看一区二区三区 | 午夜第一页 | av成人免费观看 | 国产精品视频久久久久 | 不卡av网站 | 神马伦理视频 | 超碰在线c| 日韩伦理一区二区 | 超碰在线亚洲 | 国产精品入口麻豆 | 久久久久久久久久久网站 | 国产精品久久毛片av大全日韩 | 日韩一级片在线 | 毛片毛多水多 | 亚洲GV成人无码久久精品 | 超碰自拍 | 性色av蜜臀av色欲av | 免费视频网站www | 国产乱大交 | 亚洲视频免费播放 | 日本三级一区二区三区 | 99re在线国产 | 涩涩屋污| 影音先锋在线看片资源 | 成人国产精品免费观看动漫 | 天天干天天草 | 精品久久久久久 | 国产黄色一区二区 | 三度诱惑免费版电影在线观看 | 精品一级少妇久久久久久久 | 成人一区二区电影 | 欧美偷拍亚洲 | 桃色av| www日本在线观看 | 最新中文字幕视频 | 又紧又大又爽精品一区二区 | 爱爱亚洲| 亚洲精品视频三区 | 狂野少女电影在线观看国语版免费 | 涩涩屋污 | 久久99久久99精品免观看软件 | xxxx日本黄色 | 少妇一级淫片 | 黑人玩弄人妻一区二区绿帽子 | 性xxxx| av作品在线观看 | 日韩精品一区二区在线观看 | 日日夜夜干 | 成人av网站免费 | 日韩毛片网站 | 老熟女一区二区三区 | 毛片毛片毛片毛片 | 黄色大片网站在线观看 | 男女做激情爱呻吟口述全过程 | 天天射,天天干 | 久久免费看 | 天天干夜夜玩 | 成人精品视频一区 | 国产乱了高清露脸对白 | 久久久久久影视 | 波多野结衣之潜藏淫欲 | 少妇脚交调教玩男人的视频 | 日韩高清免费观看 | 黄色一二三区 | 一区二区在线观看av | 国产精选久久 | 欧美一区二区免费在线观看 | 亚洲欧洲精品在线 | 性欧美jzjz2 九草影院 | 精品成人av一区二区在线播放 | 99久久婷婷国产综合精品青牛牛 | 国产美女网站 | 日韩av一区二区三区 | 久久精品视频91 | 日本毛片在线 | 亚洲午夜色 |