手把手教你使用Python网络爬虫和邮件发送来定制你的每日一文

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

朝辞白帝彩云间,千里江陵一日还。

大家好,我是Python进阶者。

前言

前几天在Python交流群里边,【冫马讠成】大佬分享了一个有趣的代码,用于定时发送每日一文分享,觉得挺有意思,这里拿出来给大家分享。

e3c335e670873a91291c54532222092b.png

实现思路

实现思路倒是不难,其一是Python网络爬虫,将网页上的每日一文抓取到,然后存起来到一个变量中,其二是编写发送邮件的逻辑,编辑好邮寄模板,然后将抓到的内容发送出去即可。

实现过程

这里直接上代码,如下所示:

import requests
from lxml import etree
import time
import smtplib
from email.mime.text import MIMEText
from email.header import Header

# account = input('请输入你的邮箱:')
# password = input('请输入你的密码:')
# receiver = input('请输入收件人的邮箱:')
account = '{0}'.format('请输入你的邮箱:')
password = '{0}'.format('请输入你的密码:')
receiver = '{0}'.format('请输入收件人的邮箱:')


def getArticle(url):
    global data
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'
    }
    # get 请求
    r = requests.get(url, headers=headers)
    # 提取数据
    html = etree.HTML(r.text)
    article = html.xpath(
        '//h1/text() | //p[@class="article_author"]/span/text() | //div[@class="article_text"]/p/text()'
    )
    # 追加的方式写到文本文件中
    data = '''
%s  %s  %s  %s  %s  %s  %s  %s
                    '''%(str(time.ctime()),'\n\n《',str(article[0]),'》','\n\n作者:', str(article[1]), '\n\n',str('\n'.join(article[2:])))
    with open('article.txt', 'w', encoding='utf-8') as f:
        f.write(time.ctime() + '\n\n《' + article[0] + '》' + '\n\n作者:' + article[1] + '\n\n')
        f.write('\n'.join(article[2:]))
        f.write('\n\n')
        print(data)
    return data 


def send_email(data):
    global account,password,receiver
    mailhost ='smtp.qq.com'
    qqmail = smtplib.SMTP_SSL(mailhost, 465)
    # qqmail.connect(mailhost,465)
    qqmail.login(account,password)
    content = '亲爱的,每日一文:'+data
    message = MIMEText(content, 'plain', 'utf-8')
    subject = '每日一文'
    message['Subject'] = Header(subject, 'utf-8')
    try:
        qqmail.sendmail(account, receiver, message.as_string())
        print('邮件发送成功')
    except:
        print('邮件发送失败')
    qqmail.quit()


if __name__ == '__main__':
    url = 'https://meiriyiwen.com'
    data = getArticle(url)
    send_email(data)

你只需要输入你的邮箱,邮箱授权码和对应的收件人即可。如果不知道邮箱授权码怎么配置的话,请参考这篇文章:手把手教你使用Python网络爬虫实现邮件定时发送(附源码),有详细的配置过程,这里不再赘述。

代码运行之后,用户就可以收到你发送的邮件了,如下所示。

c8b29c302419a0e68330d640efd7f881.png

你也可以定时给自己发,使用定时任务工具,做个定时任务,每天提醒自己看一下文章,日积月累,这样你的阅读量就高很多了,做个文绉绉的人就不远啦!

总结

大家好,我是Python进阶者。这篇文章主要基于Python网络爬虫和Python自动化办公中的邮件发送知识,实现自动发送邮件观看每日一文分享的小项目。

最后感谢【冫马讠成】大佬的代码分享,也欢迎大家积极尝试,有好的内容也可以分享给我噢!

0e37b0de385d41c903c4249de50665b1.png

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

1686ee72dfdff04d8342ee39f91dea70.png

------------------- End -------------------

往期精彩文章推荐:

6d25a049dfcb849c9e33124b2b7cf647.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值