selenium+pillow实现网站定点截图并插入邮件发送
2015-08-10 22:45
891 查看
#coding: utf-8
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import time,os
import selenium.webdriver
from PIL import Image
#打开目标地址
driver=selenium.webdriver.Firefox()
driver.get("http://www.51testing.com/html/index.html")
#找到目标元素
photo=driver.find_element_by_xpath(".//*[@id='pagetitle']/div[1]/a/img")
time.sleep(3)
#获取元素所处的位置,以x,y标识元素左上定点的位置
location=photo.location
print (location)
#获取元素的高和宽,以height标识高,以width标识宽
size=photo.size
print (size)
#截取全屏图像并保存到本地路径
driver.save_screenshot("photo.png")
#打开所截取的图像
im = Image.open("photo.png")
#定义二次截图的位置及大小
left=location['x']
top=location['y']
right=left+size['width']
bottom=location['y']+size["height"]
#二次截图并替换原图像
im = im.crop((left,top,right,bottom))
im.save("photo.png")
driver.close()
#定义邮件正文内容,由一个html文档构成
def mailWrite():
#以img标签标识正文区html中的图像
head='<html><body><img src='
#以cid标注文件在附件中可以找到,如不写,邮件将不会在附件中查找该文件,则会出现不显示图像的情况
body='cid:photo'
tail="></img></body></html>"
#将内容拼接成完整的HTML文档
mail=head+body+tail
return mail
#发送邮件
def mailSend(mail):
sender = '***@***.net'
#设置接收人
receiver = '***@***.net'
#设置邮件主题
subject = 'Test mail,ignore please!'
#设置发件服务器,即smtp服务器
smtpserver = 'smtp.***.net'
#设置登陆名称
username = '***@***.net'
#设置登陆密码
password = '******'
#创建MIMEMultipart对象,采用related定义内嵌资源的邮件体
msg = MIMEMultipart('related')
#输入邮件主题
msg['Subject'] = subject
#将html文档内容插入邮件正文区
msgText = MIMEText(mail,'html','utf-8')
msg.attach(msgText)
#以二进制形式打开图片文件,并插入附件区,以备正文区检索本地文件而正确显示在正文区
fp = open('photo.png', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID','photo')
msg.attach(msgImage)
#调用邮件发送方法
smtp = smtplib.SMTP()
#设置连接发件服务器
smtp.connect('smtp.***.net')
#输入用户名,密码,登陆服务器
smtp.login(username, password)
#发送邮件
smtp.sendmail(sender, receiver, msg.as_string())
#退出登陆并关闭与发件服务器的连接
smtp.quit()
#入口函数,配置文件地址和文件名
def main():
mail=mailWrite()
mailSend(mail)
print("mailed")
#调用执行main函数
if __name__=="__main__":
main()
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import time,os
import selenium.webdriver
from PIL import Image
#打开目标地址
driver=selenium.webdriver.Firefox()
driver.get("http://www.51testing.com/html/index.html")
#找到目标元素
photo=driver.find_element_by_xpath(".//*[@id='pagetitle']/div[1]/a/img")
time.sleep(3)
#获取元素所处的位置,以x,y标识元素左上定点的位置
location=photo.location
print (location)
#获取元素的高和宽,以height标识高,以width标识宽
size=photo.size
print (size)
#截取全屏图像并保存到本地路径
driver.save_screenshot("photo.png")
#打开所截取的图像
im = Image.open("photo.png")
#定义二次截图的位置及大小
left=location['x']
top=location['y']
right=left+size['width']
bottom=location['y']+size["height"]
#二次截图并替换原图像
im = im.crop((left,top,right,bottom))
im.save("photo.png")
driver.close()
#定义邮件正文内容,由一个html文档构成
def mailWrite():
#以img标签标识正文区html中的图像
head='<html><body><img src='
#以cid标注文件在附件中可以找到,如不写,邮件将不会在附件中查找该文件,则会出现不显示图像的情况
body='cid:photo'
tail="></img></body></html>"
#将内容拼接成完整的HTML文档
mail=head+body+tail
return mail
#发送邮件
def mailSend(mail):
sender = '***@***.net'
#设置接收人
receiver = '***@***.net'
#设置邮件主题
subject = 'Test mail,ignore please!'
#设置发件服务器,即smtp服务器
smtpserver = 'smtp.***.net'
#设置登陆名称
username = '***@***.net'
#设置登陆密码
password = '******'
#创建MIMEMultipart对象,采用related定义内嵌资源的邮件体
msg = MIMEMultipart('related')
#输入邮件主题
msg['Subject'] = subject
#将html文档内容插入邮件正文区
msgText = MIMEText(mail,'html','utf-8')
msg.attach(msgText)
#以二进制形式打开图片文件,并插入附件区,以备正文区检索本地文件而正确显示在正文区
fp = open('photo.png', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID','photo')
msg.attach(msgImage)
#调用邮件发送方法
smtp = smtplib.SMTP()
#设置连接发件服务器
smtp.connect('smtp.***.net')
#输入用户名,密码,登陆服务器
smtp.login(username, password)
#发送邮件
smtp.sendmail(sender, receiver, msg.as_string())
#退出登陆并关闭与发件服务器的连接
smtp.quit()
#入口函数,配置文件地址和文件名
def main():
mail=mailWrite()
mailSend(mail)
print("mailed")
#调用执行main函数
if __name__=="__main__":
main()
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例