首页 > 编程语言 >Python爬虫异常怎么用邮件来通知

Python爬虫异常怎么用邮件来通知

时间:2022-11-22 14:01:22浏览次数:32  
标签:utf addr Python 爬虫 server msg 邮件

正常企业做数据抓取经常会遇到各种故障问题,那么在人不能随时盯着爬虫电脑来防止错误,就需要用email来向自己报告。

SMTP邮件协议是Python内置是支持的,他不仅可以发送纯文本的邮件,也可以发html邮件,选择性比较多。Python对SMTP的支持有smtplib和email两个模块,emial负责构造邮件,smtplib负责发送邮件。

下文就是我用163邮箱来发送邮件的,开启SMTP功能,采用163的电子邮件服务器smtp.163.com

构造纯文本邮件

# msg = MIMEText('Python爬虫运行异常,异常信息为遇到HTTP 403', 'plain', 'utf-8')

MIMEText对象需要3个参数。

邮件正文,

MIME的类型,plain表示纯文本发送,html,表示网页发送。

设置邮件格式,这里彩了utf-8保证兼容多种语言。

构造网页邮件。

msg = MIMEText('<html><body><h1>hello</h1><p>异常网页<a href= "http://www.baidu.com">百度</a><p></body></html>', 'html', 'utf-8')

完整发邮件代码

# coding:utf-8

from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr

import smtplib

def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))

# 发件人地址
from_addr = '******@163.com' #这里换成你的邮件地址

# 邮箱密码
password = '*******' #这里换成你的邮箱密码。

# 收件人地址
to_addr = '******@126.com' #收件人的地址。我这里采用的是126邮箱,我发现QQ邮箱被拒收了。

# 163网易邮件服务器地址
smtp_server = 'smtp.163.com'

# 设置邮件信息
# msg = MIMEText('Python爬虫运行异常,异常信息为遇到HTTP 403', 'plain', 'utf-8')

msg = MIMEText('<html><body><h1>hello</h1><p>异常网页<a href= "http://www.baidu.com">百度</a><p></body></html>', 'html', 'utf-8')
msg['from'] = _format_addr('Python绿色通道<%s>' % from_addr)
msg['to'] = _format_addr('Python绿色通道管理员<%s>' % to_addr)
msg['subject'] = Header('Python绿色通道爬虫运行状态', 'utf-8').encode()

# 发送邮件
server = smtplib.SMTP(smtp_server, 25)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

标签:utf,addr,Python,爬虫,server,msg,邮件
From: https://blog.51cto.com/u_13488918/5877910

相关文章

  • python 执行报错
    PSF:\python\Python-Core-50-Courses-master\learn_python>pythonhelloworld.pyC:\Users\huawei\AppData\Local\Microsoft\WindowsApps\python.exe:can'topenfi......
  • 邮件发送
    FUNCTIONzfmxx_send_email.*"----------------------------------------------------------------------*"*"本地接口:*"IMPORTING*"REFERENCE(I_SENDER)TYPE......
  • python判断文件夹是否存在不存在创建
    (39条消息)python判断目录和文件是否存在,若不存在即创建_仰望神的光的博客-CSDN博客判断目录是否存在importosdirs='/Users/joseph/work/python/'ifnotos.pat......
  • python基础知识点
    目录字典列表字典a={}a['you']=['a','b']a['me']=['c','d']print(a)输出结果:{'you':['a','b'],'me':['c','d']}列表print([2]+[3])输出结果......
  • python错误总结(常更)
    AttributeError:‘set’objecthasnoattribute‘items’出错原因是在http请求的header里,应该用冒号而不是逗号//wrongheaders={'Content-Type','applica......
  • 邮件发送
    邮件发送流程 1.邮件发送原理图2.jar包的支持activation-1.1.1.jarmail-1.4.7.jar3.授权码的获取4.简易文本邮件发送的实现由上图我们可以确定几个必须步......
  • Python工具箱系列(十五)
    前文讲述加解密时,直接将密钥写在了python源代码中,这肯定不是什么好的手法。应该将这类与代码加功效无关的信息保存到配置中,随时可以需要进行修改。从大的角度来看,配置无非......
  • [Python] 多线程 概念 使用
    python多线程1.线程的概念线程是CPU分配资源的基本单位。当一程序开始运行,这个程序就变成了一个进程,而一个进程相当于一个或者多个线程。当没有多线程编程时,一个进程......
  • go 实现爬虫
    一:使用go获取远程图片存储在本地案例1>生成随机数len:=32bytes:=make([]byte,len)r:=rand.New(rand.NewSource(time.Now().Unix()))fori:=0;i<len;i++{......
  • 使用python中urllib.request.Request()来构建ua
    1.代码案例=构建http请求头#coding=utf-8importurllib.requestimporturllib.parseurl="http://www.baidu.com/"headers={'User-Agent':'Mozilla/5.0(WindowsNT6......