【Python黑科技】获取每日一句美句,并定时发送邮件到指定邮箱(保姆级图文+实现代码)

目录

    • 实现效果
    • 实现思路
      • 1.获取每日一句美句
      • 2.定时发送需要接入时间模块
      • 3.邮件发送
    • 实现代码
    • 总结


欢迎关注 『Python黑科技』 系列,持续更新中
欢迎关注 『Python黑科技』 系列,持续更新中

实现效果

【Python黑科技】获取每日一句美句,并定时发送邮件到指定邮箱(保姆级图文+实现代码)_第1张图片

【Python黑科技】获取每日一句美句,并定时发送邮件到指定邮箱(保姆级图文+实现代码)_第2张图片

【Python黑科技】获取每日一句美句,并定时发送邮件到指定邮箱(保姆级图文+实现代码)_第3张图片


实现思路

1.获取每日一句美句

这一部分的具体知识点如果大家此前没有接触过简单的爬虫,可以具体参考我前面的文章
lxml库爬虫实战-爬取句子控的名人名言句子(保姆级图文+实现代码)

# 1.通过爬虫获取每日一句
import requests
from lxml import etree  
get_request = requests.get(url='https://v.api.aa1.cn/api/yiyan/index.php')  # 向api接口发送请求
# 爬虫如果失败请检查以下内容
# print(get_request.url)       # 有返回url,则URL已被正确编码
# print(get_request.text)      # 推测的文本编码
# print(get_request.content)   # 找到 (HTTP 和 XML自身可以指定编码格式)文本编码
# print(get_request.encoding)  # 常用于中文乱码解决。用于修改编码方式(使用 codecs 模块进行注册)
html = etree.HTML(get_request.text)  # html:爬取得到的网页html内容
text = html.xpath('/html/body/p/text()')[0]  # xpath路径下提取text文本,取得列表中的第0项,就是一个字符串
print(text)  # 打印获得的每日一句

2.定时发送需要接入时间模块

# 2.定时控制模块
import time
plan_time = "2022-08-23 19:03:00"
timeStruct = time.localtime(int(time.time()))  # 获得当前时间时间戳后转化为本地时间
strTime = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct)  # 当前时间格式日期格式 2022-08-23 19:00:25
print(strTime)
plan_time = input("请输入设定的发送邮件时间——\n")
while True:
    if strTime >= plan_time:  # 如果达到或是超过设定时间,因为这里我们为了减少资源消耗,休眠1秒,可能不能正好在两者相等时触发,所以设置为大于等于。
        print("达到了设定时间,退出死循环,准备发送邮件")
        break
    else:
        time.sleep(1)  # 休眠1秒
        timeStruct = time.localtime(int(time.time()))  # 获得当前时间时间戳后转化为本地时间
        strTime = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct)  # 当前时间格式日期格式 2022-08-23 19:00:25
        print(strTime)

3.邮件发送

这里的邮件发送SMTP授权码获取方式,可以参考文章
邮箱smtp服务-QQ邮箱163邮箱(保姆级图文)

# 3. 发送邮件模块
# smtp封装发信协议
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
msg_from = '[email protected]'# 发送邮箱
passwd = '填写你的邮箱SMTP授权码'#邮箱私钥
msg_receivers = ['[email protected]']#接受邮箱
for msg_receiver in msg_receivers:#for循环遍历多个收件人邮箱,可以用于群发
    msg = MIMEMultipart()
    # 添加邮箱内容
    msg.attach(MIMEText(text, 'plain', 'utf-8'))#设置邮件页面样式布局'plain'和编码'utf-8'
    msg['Subject'] = '发现你走远了给小主请安啦'#邮件标题
    msg['From'] = msg_from#设定发送者,邮件from来自哪里
    server = smtplib.SMTP_SSL('smtp.qq.com', 465)#SMTP服务器和端口
    server.login(msg_from, passwd)#SMTP验证授权码
    server.sendmail(msg_from, msg_receiver, msg.as_string())#发送邮件
    print('邮件发送成功')
    time.sleep(3)

实现代码

# 1.通过爬虫获取每日一句
import requests
from lxml import etree
get_request = requests.get(url='https://v.api.aa1.cn/api/yiyan/index.php')  # 向api接口发送请求
# 爬虫如果失败请检查以下内容
# print(get_request.url)       # 有返回url,则URL已被正确编码
# print(get_request.text)      # 推测的文本编码
# print(get_request.content)   # 找到 (HTTP 和 XML自身可以指定编码格式)文本编码
# print(get_request.encoding)  # 常用于中文乱码解决。用于修改编码方式(使用 codecs 模块进行注册)
html = etree.HTML(get_request.text)  # html:爬取得到的网页html内容
text = html.xpath('/html/body/p/text()')[0]  # xpath路径下提取text文本,取得列表中的第0项,就是一个字符串
print(text)  # 打印获得的每日一句

# 2.定时控制模块
import time
plan_time = "2022-08-23 19:03:00"
timeStruct = time.localtime(int(time.time()))  # 获得当前时间时间戳后转化为本地时间
strTime = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct)  # 当前时间格式日期格式 2022-08-23 19:00:25
print(strTime)
plan_time = input("请输入设定的发送邮件时间——\n")
while True:
    if strTime >= plan_time:  # 如果达到或是超过设定时间,因为这里我们为了减少资源消耗,休眠1秒,可能不能正好在两者相等时触发,所以设置为大于等于。
        print("达到了设定时间,退出死循环,准备发送邮件")
        break
    else:
        time.sleep(1)  # 休眠1秒
        timeStruct = time.localtime(int(time.time()))  # 获得当前时间时间戳后转化为本地时间
        strTime = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct)  # 当前时间格式日期格式 2022-08-23 19:00:25
        print(strTime)

# 3. 发送邮件模块
# smtp封装发信协议
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
msg_from = '[email protected]'# 发送邮箱
passwd = '填写你的邮箱SMTP授权码'#邮箱私钥
msg_receivers = ['[email protected]']#接受邮箱
for msg_receiver in msg_receivers:#for循环遍历多个收件人邮箱,可以用于群发
    msg = MIMEMultipart()
    # 添加邮箱内容
    msg.attach(MIMEText(text, 'plain', 'utf-8'))#设置邮件页面样式布局'plain'和编码'utf-8'
    msg['Subject'] = '发现你走远了给小主请安啦'#邮件标题
    msg['From'] = msg_from#设定发送者,邮件from来自哪里
    server = smtplib.SMTP_SSL('smtp.qq.com', 465)#SMTP服务器和端口
    server.login(msg_from, passwd)#SMTP验证授权码
    server.sendmail(msg_from, msg_receiver, msg.as_string())#发送邮件
    print('邮件发送成功')
    time.sleep(3)

总结

大家喜欢的话,给个,点个关注!给大家分享更多有趣好玩的Python黑科技!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-2-1

欢迎关注 『Python黑科技』 系列,持续更新中
欢迎关注 『Python黑科技』 系列,持续更新中
【Python黑科技】tkinter库实战7个小项目合集(保姆级图文+实现代码)
【Python黑科技】tkinter库实战制作一个计算器(保姆级图文+实现代码)
【Python黑科技】tkinter库实战制作一个记事本(保姆级图文+实现代码)
【Python黑科技】tkinter库实战用户的注册和登录(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“2048”小游戏(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“俄罗斯方块”小游戏(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“贪吃蛇”小游戏(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“连连看”小游戏(保姆级图文+实现代码)

【Python安装第三方库一行命令永久提高速度】
【使用PyInstaller打包exe】
【免登陆爬虫一键下载知乎文章图片(保姆级图文+实现代码)】
【孤独的程序员和AI机器人朋友聊天解闷(免费接口+保姆级图文+实现代码注释)】
【几行代码绘制gif动图(保姆级图文+实现代码)】
【几行代码实现网课定时循环截屏,保存重要知识点(保姆级图文+实现代码)】
【常用的user_agent 浏览器头爬虫模拟用户(保姆级图文+实现代码)】
【更多内容敬请期待】


你可能感兴趣的:(python,#,Python黑科技,python,爬虫,定时,SMTP邮件发送)