爬虫程序又莫名崩溃了?教你这一招轻松解决!

本文介绍了如何使用Python的email和smtplib模块实现爬虫异常时的邮件通知功能,通过QQ邮箱SMTP服务配置,确保在爬虫出错时能及时收到维护提醒。此外,还分享了邮件通知在爬虫监控中的应用场景,如正常更新和异常更新的处理,以及在代码中添加邮件通知的合适位置。
摘要由CSDN通过智能技术生成

每当我们写爬虫的时候,短暂的代码运行与抓取如果期间出现异常情况,我们可以及时的发现。可实际的爬虫开发项目往往运行需要耗时,对于增量式爬虫有时也是需要放到服务器上面跑的。这样我们就不能及时的观察到异常情况,那有没有比较容易实现的技术来解决这样的问题呢?(经验总结在最后)

答案是肯定的,有!那就是使用邮件通知,那具体如何操作呢?

接下来我来模拟写一下需求:

当爬虫出现故障时,第一时间通知程序员小哥哥来维护,采用邮件通知的方式。

那我们首先来介绍一下 Python 当中支持 Smtp 协议模块叫什么名字,有以下两个模块以及他们对应的作用:

email负责构造邮件

smtplib负责发送邮件

我们这里使用大家常用的 QQ 邮箱作为演示,小伙伴也可以使用其他邮箱可自行选择。在使用 QQ 邮箱时需要做以下配置。

1. QQ 邮箱配置

这里我们使用 SMTP 发信功能所以,您需要先开启 SMTP 发信功能才能通过 SMTP 接口发送邮件。

SMTP 协议是一个简单的邮件传输协议,利用它您可以将邮件发送给别人。此协议使用命令和应答在客户端与服务器之间传输报文。即客户端发出一个命令,服务器返回一个应答。发送方与接收方进行一问一答的交互,由发送方控制这个对话。

我先登陆到我们的 QQ 邮箱,界面如下:
在这里插入图片描述
选择设置,进入到如下界面:
在这里插入图片描述
找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
在这里插入图片描述
QQ 邮箱 SMTP 服务器地址:smtp.qq.com, ssl端口:465。

需要其他的服务器地址以及端口的小伙伴可以点击此链接:常用邮箱 SMTP 服务器地址大全

2. Python 发送邮件

以下实例你需要修改:发件人邮箱(你的QQ邮箱),密码,收件人邮箱(可发给自己)

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

my_sender = '1432803776@qq.com'  # 发件人邮箱账号
my_pass = 'xxxxxxxxx'           # 发件人邮箱授权码 不是qq密码   
my_user = '1432803776@qq.com'    # 收件人邮箱账号,我这边发送给自己

def mail():
    ret = True
    try:
        msg = MIMEText('填写邮件内容', 'plain', 'utf-8')
        msg['From'] = formataddr(["AI悦创", my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To'] = formataddr(["aiyuechuang", my_user])  # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject'] = "发送邮件测试"  # 邮件的主题,也可以说是标题

        server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是25
        server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱授权码
        server.sendmail(my_sender, [my_user, 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值