• Python 2.7_发送简书关注的专题作者最新一篇文章及连接到邮件_20161218


    最近看简书文章关注了几个专题作者,写的文章都不错,对爬虫和数据分析都写的挺好,因此想到能不能获取最新的文章推送到Ipad网易邮箱大师。邮件发送代码封装成一个函数,从廖雪峰大神那里学的 

    http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832745198026a685614e7462fb57dbf733cc9f3ad000

    网页源码获取和解析获取文章标题和url依然是用到的requests和BeautifulSoup4 模块 也封装成一个函数。

    #coding: utf-8
    import sys
    import requests
    from bs4 import BeautifulSoup as bs
    import smtplib
    import datetime
    from email.mime.text import MIMEText
    from email.header import Header
    from email.utils import parseaddr, formataddr
    #系统编码置为'utf-8'
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    #简书作者专题入口
    rooturl='http://www.jianshu.com/notebooks/4204686/latest'
    #获取网页源代码 并用bs4解析 返回soup对象
    def gethtml(url):
        res=requests.get(url)
        res.encoding='utf-8'
        html=res.text
        soup=bs(html,'html.parser')
        return soup
    #调用gethtml()函数获取网页soup对象 对网页进行解析 参数都是url
    def sendmail(url):
        soup=gethtml(url)
        catename =  soup.select('h3.title a')[0].text
        titlename = soup.select('h4.title a')[0].text
        titleurl = 'http://www.jianshu.com' + soup.select('h4.title a')[0]['href']
        sender = '发件人邮箱'
        receiver = '收件人邮箱'
        subject = 'python email test'
        smtpserver = '发件人邮箱smtp服务器'
        username = '发件人邮箱'
        password = '发件人邮箱密码'
        date=datetime.date.today()
        def _format_addr(s):
            name, addr = parseaddr(s)
            return formataddr((
                Header(name, 'utf-8').encode(),
                addr.encode('utf-8') if isinstance(addr, unicode) else addr))
        msg = MIMEText('''
    早安!
        Mr_Cxy,今天是%s!
        简书作者"向右奔跑"在【%s】目录下最新发表的文章是:
        %s.
        文章链接:%s
            ''' % (date,catename,titlename,titleurl), 'plain', 'utf-8')
        msg['From'] = _format_addr(u'简书App <%s>' % sender)
        msg['To'] = _format_addr(u'yourself~ <%s>' % receiver)
        msg['Subject'] = Header(u'简书作者最新文章', 'utf-8').encode()
        smtp = smtplib.SMTP('smtp.163.com',25)
        smtp.login(username, password)
        smtp.sendmail(sender, receiver, msg.as_string())
        smtp.quit()
    print sendmail(rooturl)
    

      

  • 相关阅读:
    ProxySQL结构
    Kubernetes 零宕机滚动更新
    Promtail Pipeline 日志处理配置
    Fluentd 简明教程
    innodb_flush_log_at_trx_commit 和 sync_binlog 参数详 解
    AlertManager 何时报警
    ProxySQL 全局变量详解
    ProxySQL SQL 注入引擎
    ProxySQL SSL 配置
    ProxySQL 密码管理
  • 原文地址:https://www.cnblogs.com/Mr-Cxy/p/6193913.html
Copyright © 2020-2023  润新知