Python爬虫之Email提醒-程序员宅基地

技术标签: Python  

在实际爬虫运行过程中,我们不可能时刻都盯着计算机,当爬虫运行过程中遇到异常或者服务器出了问题,我们就需要通过Email即使向自己报告。
发送邮件的协议时SMTP, Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。

在发送Email之前,首先申请一个邮箱,开启SMTP功能,我们这里采用的是腾讯的QQ电子邮箱服务,smtp服务器smtp.qq.com
将SMTP开启之后,我们来构造一个纯文本邮件:

from email.mime.text import MIMEText

msg = MIMEText('Python爬虫运行异常,error:HTTP 403', 'plain', 'utf-8')

构造MIMEText对象时需要三个参数:
◈ _text: 邮件正文
◈ _subtype: MIMEText的subtype,缺省值为“plain”表示纯文本,最终的MIME就是“text/plain”
◈ _charset: 设置编码格式,UTF-8编码保证多语言的兼容性。
接着设置邮件的发件人、收件人和邮件主题等信息,并通过SMTP发送出去:

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

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

# 邮箱
form_addr = '[email protected]'
# 不是邮箱密码,而是开启SMTP服务时的授权码
password = 'pass'
# 收件人的邮箱
to_addr = '[email protected]'
# qq邮箱的服务器地址
smpt_server = 'smtp.qq.com'

# 设置邮件信息
msg = MIMEText('Python爬虫运行异常,error:HTTP 403', 'plain', 'utf-8')
msg['From'] = _format_addr('一号爬虫 <%s>' %form_addr)
msg['To'] = _format_addr('管理员 <%s>' %to_addr)
msg['Subject'] = Header('一号爬虫运行状态', charset='utf-8').encode()

# 发送邮件
server = smtplib.SMTP(smpt_server, port=25)
server.set_debuglevel(1)
server.login(form_addr, password)
server.sendmail(form_addr, [to_addr], msg.as_string())
server.quit()

有时候我们发送的可能不是纯文本,需要发送HTML邮件,将异常网页信息发送回去。在构造MIMEText对象的时候,把HTML字符串传进去,再把第二个参数变为“html”就可以了。

msg = MIMEText('<html><head></head><body><h1>Hello</h1></body></html>', 'html', 'utf-8')
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/nicebluechai/article/details/103594008

智能推荐

day01 深度学习介绍-程序员宅基地

文章浏览阅读1k次,点赞27次,收藏24次。1、深度学习机器学习的分支。人工神经网络为基础,对数据的特征进行学习的方法。2、机器学习和深度学习的区别:机器学习:人工的特征抽取。深度学习:自动的进行特征抽取。机器学习:数据少,效果不是很好深度学习:数据多,效果更好图像识别:物体识别、场景识别、人脸检测跟踪、人脸身份认证。自然语言处理技术:机器翻译、文本识别、聊天对话。语音技术:语音识别4、深度学习框架:pytorch。

HTML 前端学习(3)—— CSS 选择器_html 选择框css-程序员宅基地

文章浏览阅读174次。HTML 前端学习(3)—— CSS 选择器CSS 注释CSS 语法结构二级目录三级目录CSS 注释/*单行注释*//* 多行注释 多行注释 多行注释 ... */通常我们在写 CSS 样式的时候也会用注释来划定样式区域(因为 HTML 代码多所以对应的CSS代码会很多) /* 这是首页的 CSS 样式文件 */ /*顶部导航栏样式*/ ... /*左侧菜单栏注释*/ ..._html 选择框css

Spring Boot 的系统配置文件加载顺序_springboot加载配置文件顺序-程序员宅基地

文章浏览阅读4k次。Spring Boot 的系统配置文件加载顺序_springboot加载配置文件顺序

String相关的操作_string str1 = input.next();-程序员宅基地

文章浏览阅读508次。package com.test;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Ar_string str1 = input.next();

java 获取月份 几周_获取日期是月份中的第几周(以周一为开始时间)-程序员宅基地

文章浏览阅读2.8k次。1.说明: 业务要求,需要知道一个日期是哪个月份的第几周,并且是周一为一周的开始,周一在哪个月,此周就是属于哪个月的;比如:2020-02-01 和 2020-02-02属于1月份的第四周 ;2020-02-03 属于2月份第一周2.思路: 都2020年了,我们使用JDK8的LocalDate吧,毕竟真香! API好用~①找到查询日期sourceTime的当月的第一天(firstDayOfMont..._java 月的 第几周

万字长文 netty学习--- 网络编程/NIO/_netty copyonwritearraylist-程序员宅基地

文章浏览阅读308次。万字长文 netty学习--- 网络编程/NIO_netty copyonwritearraylist

随便推点

【ISP】浅析Lens Shading_镜头中心暗影-程序员宅基地

文章浏览阅读4k次,点赞4次,收藏22次。【ISP】浅析Lens Shading从2000年9月底摄像头首次出现在手机上算起,到如今成为诸多智能设备不可或缺的一部分,便携式手机摄像头已经走过了18年的发展历程。随着手机智能化、轻薄化的发展进程,其搭载的摄像头也随之发生了变化,但基本结构并未有太大的改变。通常而言,一个摄像头硬件应包含以下五个部分:外壳(Housing)或..._镜头中心暗影

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connec-程序员宅基地

文章浏览阅读4.1w次,点赞80次,收藏160次。WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘ProxyError(‘Cannot connect to proxy.’, OSError(0, ‘Error’))’:问题描述:pip 无论下载什么包的时候,就会出现4次:WARNING: Retrying (Retry(total=4, connect=None, r_warning: retrying (retry(total=4, connect=none, read=none, redirect=none, st

libcurl 使用方法简介_curlopt_headerfunction-程序员宅基地

文章浏览阅读2.3k次。最近项目中需要使用http实现文件的上传功能,使用到了libcurl,转载了一篇博客记录下,便于后续的查看。简介libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。所以,使用libcur..._curlopt_headerfunction

实现SMTP服务器接收邮件的Go语言网络编程函数_go smtp-程序员宅基地

文章浏览阅读210次。在Go语言中,我们可以利用网络编程函数来实现一个SMTP服务器,用于接收和处理传入的邮件。在这个简单的实现中,我们只是返回一些固定的响应,表示命令的执行情况。然后,我们进入一个无限循环,不断接受客户端的连接请求,并为每个连接启动一个新的协程来处理。通过以上的代码,我们实现了一个简单的SMTP服务器,用于接收和处理传入的邮件。需要注意的是,这只是一个简单的实现,没有进行真正的邮件处理和存储。在实际应用中,你需要对接收到的邮件进行解析和处理,并将其存储到相应的位置。在结构体中,我们将存储SMTP服务器的地址。_go smtp

Android获取定位信息LacCi值_lac ci-程序员宅基地

文章浏览阅读2.4k次。定义:LAC:location area code 位置区码 (移动通信系统中),是为寻呼而设置的一个区域,覆盖一片地理区域,初期一般按行政区域划分(一个县或一个区),现在很灵活了,按寻呼量划分。当一个LAC下的寻呼量达到一个预警门限,就必须拆分。 为了确定移动台的位置,每个GSMPLMN的覆盖区都被划分成许多位置区,位置区码(LAC)则用于标识不同的位置区。一个位置区可以包含一个或多个小区移..._lac ci

耳机煲机软件测试自学,乐味煲耳机软件教程 只需三步轻松煲耳机-程序员宅基地

文章浏览阅读1k次。乐味煲耳机软件是一款专业的煲耳机软件,软件通过专门的频率发生器来生成某一段固定或扫描的频率然后输入到耳机,以此达到煲耳机的效果,下面就来讲讲使用教程。类别:音频处理 大小:340K 语言:简体中文评分:6煲机一般都是用低频来测试,所以选择频率为20HZ到100HZ比较合适,还要选择循环,然后就可以插上耳机,让它长时间工作了,一般需要8个小时左右。不同的耳机所需要的时间也不同,可以根据自己..._乐味煲耳机

推荐文章

热门文章

相关标签