爬取数据并发送邮件

当爬取数据后,有时候我们需要发送邮件进行通知,这时可以使用邮件自动发送的方式,当检测到文章更新时,自动抓取并发送。

Paste_Image.png

当自己使用时,只需要把Mailhelper()类中的用户名和密码换为自己的,然后,调用send_mail(self, to_list, sub, content)就可以直接使用。

import requests
import smtplib
from email.mime.text import MIMEText
from bs4 import BeautifulSoup

class Mailhelper():
    def __init__(self):
        self.mail_host = "smtp.126.com"
        self.mail_user = "xxxxxx@126.com"
        self.mail_pass = 'xxxxxxx'
        self.port = '25'

    def send_mail(self, to_list, sub, content):
        me = "Mail Sender" + "<"+ self.mail_user + ">"
        msg = MIMEText(content, _subtype='plain', _charset='utf-8')
        msg['Subject'] = sub
        msg['From'] = me
        msg['To'] = ";".join(to_list)
        try:
            server = smtplib.SMTP(self.mail_host,self.port)
            server.connect(self.mail_host) 
            server.login(self.mail_user,self.mail_pass)
            server.sendmail(me, to_list, msg.as_string())
            server.close()
            print('Done')
        except Exception as e:
            print(str(e))
            return False


if __name__ == '__main__':
    mailto_list=['xxxxxx@126.com']
    helper = Mailhelper()

    url = "http://www.getrandomthings.com"
    Soup = BeautifulSoup(requests.get(url).text, 'lxml')
    prefixs = Soup.select('a')
    textr = []
    for prefix in prefixs:
        textr.append(prefix.get_text())
    textresult = ' '.join(textr)
    helper.send_mail(mailto_list, textresult[:17], textresult)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,782评论 19 139
  • Django 官方文档 发送email 官网地址:[https://docs.djangoproject.com/...
    学以致用123阅读 2,418评论 0 2
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,459评论 22 257
  • 一、相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1...
    LizPL阅读 1,431评论 0 3
  • 1.每次删除后面重复的元素 2.使用数组的indexOf()方法 3.观察数组该元素是否是第一次出现 4.利用Ob...
    txwslyf阅读 180评论 0 0

友情链接更多精彩内容