前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫小技巧| Email提醒功能

Python爬虫小技巧| Email提醒功能

作者头像
Python进击者
发布2019-07-19 16:07:02
8690
发布2019-07-19 16:07:02
举报
文章被收录于专栏:JAVAandPython君JAVAandPython君

大家可能都知道STMP这个协议,这个协议是用于发送邮件,很多语言都支持此协议,Python内置也是对SMTP支持的,可以发送纯文本邮件、HTML邮件以及带附件的邮件。在Python爬虫的开发中Email有啥用呢?Email主要起的是提醒作用,在我们爬虫运行的时候可能会遇到异常或者服务器方面的问题,我们可以通过邮件的形式来及时通知我们,我们再去进行处理。

Python对STMP支持有两个库,分别是smtplib和email。email库主要是负责构造邮件,smptlib库负责发送邮件。

我们可以把Email提醒功能封装起来,我们需要的时候直接调用即可,这样慢慢的也可以形成我们自己的一个爬虫系统模块。

我们现在具体来讲解一下,首先我们需要两个邮箱,一个用于发邮件,一个用于接收邮件,我这里用的分别是163邮箱和QQ邮箱.

首先最重要的一步,就是开启STMP功能。

上面两张图分别是163邮箱和QQ邮箱的STMP功能开通界面(必须要打开此功能

我们将其封装好的代码如下:

代码语言:javascript
复制
class SendMail(object):
def __init__(self,username,passwd,recv,title,content,
                 file=None,
                 email_host='smtp.163.com',port=25):
self.username = username
self.passwd = passwd
self.recv = recv
self.title = title
self.content = content
self.file = file
self.email_host = email_host
self.port = port
def send_mail(self):
        msg = MIMEMultipart()
#发送内容的对象
if self.file:#处理附件的
            att = MIMEText(open(self.file).read())
            att["Content-Type"] = 'application/octet-stream'
            att["Content-Disposition"] = 'attachment; filename="%s"'%self.file
            msg.attach(att)
        msg.attach(MIMEText(self.content))#邮件正文的内容
        msg['Subject'] = self.title  # 邮件主题
        msg['From'] = self.username  # 发送者账号
        msg['To'] = self.recv  # 接收者账号列表
self.smtp = smtplib.SMTP(self.email_host,port=self.port)
#发送邮件服务器的对象
self.smtp.login(self.username,self.passwd)
try:
self.smtp.sendmail(self.username,self.recv,msg.as_string())
        except Exception as e:
            print('出错了',e)
else:
            print('发送成功!')
def __del__(self):
self.smtp.quit()

# 调用封装
if __name__ == '__main__':
    m = SendMail(
        username='XXX@163.com',passwd='XXX',recv='XXX@XXX.com',
        title='JAVAandPython君',content='这里可以改成异常的输出',file='JAVA.txt'
    )
    m.send_mail()

上面43行代码就可以完美解决,因为最近项目里面也用到了这一块的知识,所以特意分享给大家,本人觉得还是比较实用的!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python进击者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档