用郵件來通知爬蟲異常狀況~這樣就不用加班了~

如果Python爬蟲發生了故障,希望第一時間來通知自己,這個時候可以通過email來向自己報告。

發送郵件的協議是SMTP,Python內置對SMTP支持,可以發送純文本郵件,html郵件,以及帶附件的郵件,Python對SMTP的支持有smtplib和email兩個模塊,emial負責構造郵件,smtplib負責發送郵件。

這裡我是用163郵箱來發送郵件的,開啟SMTP功能,採用163的電子郵件服務器smtp.163.com

構造純文本郵件
<code># msg = MIMEText('Python爬蟲運行異常,異常信息為遇到HTTP 403', 'plain', 'utf-8')/<code>

MIMEText對象需要3個參數。

  • 郵件正文,
  • MIME的類型,plain表示純文本發送,html,表示網頁發送。
  • 設置郵件格式,這裡彩了utf-8保證兼容多種語言。
構造網頁郵件。
<code>msg = MIMEText('

hello

異常網頁

', 'html', 'utf-8')

/<code>

完整發郵件代碼

<code># coding:utf-8 



from email.header import Header

from email.mime.text import MIMEText

from email.utils import parseaddr, formataddr


import smtplib


def _format_addr(s):

   name, addr = parseaddr(s)

   return formataddr((Header(name, 'utf-8').encode(), addr))


# 發件人地址

from_addr = '******@163.com'    #這裡換成你的郵件地址


# 郵箱密碼

password = '*******'    #這裡換成你的郵箱密碼。



# 收件人地址

to_addr = '******@126.com'    #收件人的地址。我這裡採用的是126郵箱,我發現QQ郵箱被拒收了。



# 163網易郵件服務器地址

smtp_server = 'smtp.163.com'



# 設置郵件信息


# msg = MIMEText('Python爬蟲運行異常,異常信息為遇到HTTP 403', 'plain', 'utf-8')



msg = MIMEText('

hello

異常網頁

', 'html', 'utf-8')

msg['from'] = _format_addr('Python綠色通道' % from_addr)

msg['to'] = _format_addr('Python綠色通道管理員' % to_addr)

msg['subject'] = Header('Python綠色通道爬蟲運行狀態', 'utf-8').encode()



# 發送郵件

server = smtplib.SMTP(smtp_server, 25)

server.login(from_addr, password)

server.sendmail(from_addr, [to_addr], msg.as_string())

server.quit()

/<code>

看結果圖。

用郵件來通知爬蟲異常狀況~這樣就不用加班了~


分享到:


相關文章: