python3下为scrapy爬虫添加邮件提醒功能
1. 前言。
1.1. 需求背景。
- 主要用于监控爬虫的运行状态。前面的文章已经实现了爬虫每天自动运行一次,所以在无人监控的情况下,需要知道爬虫每天的运行情况。
1.2. 实现功能。
- 爬虫启动时,发送邮件通知:启动时间。
- 爬虫结束时,发送邮件通知:结束时间,reason,统计数据。
2. 环境。
- python 3.6.1
- 系统:win7
- IDE:pycharm
- 安装过scrapy
3. 邮箱基础知识_以及邮箱设置。
3.1. SMTP协议
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
- 简单来说:
- 第一,大多数的邮件发送服务器(比如163,QQ)都是使用SMTP协议来发送邮件的。
- 第二,邮件传送代理程序使用SMTP协议来发送电子邮件到接收者的邮件服务器。
- 第三,SMTP协议只能用来发送邮件,不能用来接收邮件。
- 第四,SMTP协议的默认TCP端口号是25 。
- 第五,SMTP协议的默认SSL端口号是465 。
3.2. 邮箱设置
当我们使用程序来发送邮件时,必须做到以下两点:
- 第一,将发信人邮箱的SMTP协议开启。如下图:
第二,拿到邮箱授权码。作为程序登录邮件服务器的凭证。如上图,点击“生成授权码”。会拿到一个授权码:rkasdfghjklrbhag, 特别注意:这个授权码一定要保管好,如果被别人盗走,滥用,结果你懂的。
点击“如何使用Foxmail等软件收发邮件”,查看如何使用外部程序收发邮件,如下:
此时我们拿到了SMTP服务器地址和SSL端口号: smtp.qq.com, 465
4. 实现代码。
4.1. 创建爬虫_并用pycharm导入。
4.2. 添加发信模块:emailSender。
# 添加文件 emailSender.py
import smtplib
import datetime
from email.mime.text import MIMEText