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

智能推荐

FLink聚合性能优化--MiniBatch分析_flink mini-batch-程序员宅基地

文章浏览阅读5.4k次,点赞4次,收藏15次。[@ TOC]一、MiniBatch的演进思路1、MiniBatch版本Flink 1.9.0 SQL(Blink Planner) 性能优化中一项重要的改进就是升级了微批模型,即 MiniBatch(也称作MicroBatch或MiniBatch2.0),在支持高吞吐场景发挥了重要作用。MiniBatch与早期的MiniBatch1.0在微批的触发机制略有不同。原理同样是缓存一定的数据后..._flink mini-batch

EasyExcel导入_easyexcel 对接multipartfile-程序员宅基地

文章浏览阅读808次,点赞6次,收藏6次。导入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version></dependency>Controllerimport java.text.ParseException;import org.springframework._easyexcel 对接multipartfile

英飞凌TC3xx之一起认识DSADC系列(一)架构介绍-程序员宅基地

文章浏览阅读2.7k次,点赞27次,收藏42次。一文清晰了解英飞凌TC3xx系列的架构和组成部分,适用于正在使用EDSADC功能的人们。_dsadc

JavaDemo——读取硬盘物理序列号_java 硬盘物理序列号-程序员宅基地

文章浏览阅读1.2k次。通过调用wmic命令获取硬盘序列号,wmic命令很强大。Demo:/** * 2019年3月13日下午3:48:22 */package testReadDiskInfo;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;..._java 硬盘物理序列号

CentOS 编译Hadoop 2.6 32位_32位linux系统 编译hadoop-程序员宅基地

文章浏览阅读2.2k次。本文采用CenOS 6 32位,JDK1.7进行编译 (1)安装编译库yum install cmake lzo-devel zlib-devel gcc gcc-c++ autoconf automake libtool ncurses-devel openssl-devel libXtst(2)安装mavenwget http://repos.fedorapeople.org/repos/dc_32位linux系统 编译hadoop

bind mysql web_基于的django的bind dns管理平台-程序员宅基地

文章浏览阅读422次。BIND(Berkeley internet Name Daemon)也叫做NAMED,是现今互联网上使用最为广泛的DNS 服务器程序,本项目旨在更简单的维护我们内部的dns系统。环境:数据库: mysql5.6应用: bind-9.11.2环境: python3.8 , django30x01 安装数据库bash sql 建库语句use mysqlcreate database bind9; -..._使用web管理bind

随便推点

Splunk安装配置和基础运维_splunk中文手册,2024阿里+头条+腾讯等大厂Linux运维笔试题分享_splunk部署、配置、优化-程序员宅基地

文章浏览阅读367次,点赞5次,收藏3次。16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?5、LVS、Nginx、HAproxy有什么区别?9、讲述一下Tomcat8005、8009、8080三个端口的含义?索引默认位置:/opt/splunk/var/lib/splunk。7、Tomcat和Resin有什么区别,工作中你怎么选择?15、讲述一下LVS三种模式的工作过程?_splunk部署、配置、优化

PreScan 学习问题总结_prescan2021与matlab版本-程序员宅基地

文章浏览阅读1.5k次。学习自动驾驶,入手PreScan 仿真软件。 从此开启学习_prescan2021与matlab版本

一文看懂Linux内核!Linux内核架构和工作原理详解_linux内核基本原理-程序员宅基地

文章浏览阅读1.9w次,点赞43次,收藏421次。linux内核相关视频解析:5个方面分析linux内核架构,让你对内核不再陌生90分钟了解Linux内存架构,numa的优势,slab的实现,vmalloc的原理手把手带你实现一个Linux内核文件系统简介作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构,每个进程都依赖于一个父进程。内核启动init程序作为第一个进程。该进程负责进一步的系统初始化操作。init_linux内核基本原理

Android音乐播放器_登录即可查找最新的android应用、游戏、电影、音乐等精彩内容-程序员宅基地

文章浏览阅读939次。该音乐播放器是我研究生开学前做出来的,花了我将近一个月的闲余时间,算是有模有样的了。现在算起来,应该有一年多没搞Android,所以现在看回以前的程序已经比较模糊了,整个工程的代码量还是比较庞大的,就不把代码贴出来了,感兴趣的可以自行下载代码。欢迎先体验我的App,来一场听觉与视觉的享受吧!视觉????嗯,你没看错,安装后有惊喜,让你欲罢不能!(貌似有点夸张了)Apk下载地址:ht_登录即可查找最新的android应用、游戏、电影、音乐等精彩内容

无法注册 URL http://+:8735/Service/。另一应用程序已使用 HTTP.SYS 注册了该 URL。的解决办法。_无法注册应用去处理url地址-程序员宅基地

文章浏览阅读1.1w次。 弄了一上午,终于把使用NetTcpBinding的双工通讯给弄清楚了,也算是对wcf有所掌握了,为了解决穿透防火墙的问题,所以决定尝试一下WsDualHttpBinding的双工通信,结果问题来了。。。 “无法注册 URL http://+:8735/Service/。另一应用程序已使用 HTTP.SYS 注册了该 URL。” 晕了一种个下午,百_无法注册应用去处理url地址

Python学习资料全面总结,真的对零基础很有用-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏52次。把手里积累了这么久的Python入门资料整理了一下,发现其实,有了这些,python入门真的不难,每天花点时间学,真的不会影响工作。下面一起来看看这些资料吧!可以学习python的地方 Python学习资料全部整理 Python可以做的事情 关于python的一些文章一、可以学习Python的地方1、实验楼:【Python基础+项目实战课程】https://www.lanqiao.cn/courses/13302、《笨办法学 Python》:这本书绝对是最简单的学习 Pyth.._python学习资料

推荐文章

热门文章

相关标签