朝辞白帝彩云间,千里江陵一日还。
大家好,我是Python进阶者。
前言
前几天在Python交流群里边,【冫马讠成】大佬分享了一个有趣的代码,用于定时发送每日一文分享,觉得挺有意思,这里拿出来给大家分享。
实现思路
实现思路倒是不难,其一是Python网络爬虫,将网页上的每日一文抓取到,然后存起来到一个变量中,其二是编写发送邮件的逻辑,编辑好邮寄模板,然后将抓到的内容发送出去即可。
实现过程
这里直接上代码,如下所示:
代码语言:javascript复制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()),'nn《',str(article[0]),'》','nn作者:', str(article[1]), 'nn',str('n'.join(article[2:])))
with open('article.txt', 'w', encoding='utf-8') as f:
f.write(time.ctime() 'nn《' article[0] '》' 'nn作者:' article[1] 'nn')
f.write('n'.join(article[2:]))
f.write('nn')
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网络爬虫实现邮件定时发送(附源码),有详细的配置过程,这里不再赘述。
代码运行之后,用户就可以收到你发送的邮件了,如下所示。
你也可以定时给自己发,使用定时任务工具,做个定时任务,每天提醒自己看一下文章,日积月累,这样你的阅读量就高很多了,做个文绉绉的人就不远啦!
总结
大家好,我是Python进阶者。这篇文章主要基于Python网络爬虫和Python自动化办公中的邮件发送知识,实现自动发送邮件观看每日一文分享的小项目。
最后感谢【冫马讠成】大佬的代码分享,也欢迎大家积极尝试,有好的内容也可以分享给我噢!
------------------- End -------------------