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


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

实现效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


实现思路

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 = '1653xxxxx@qq.com'# 发送邮箱
passwd = '填写你的邮箱SMTP授权码'#邮箱私钥
msg_receivers = ['9066XXXXXX@qq.com']#接受邮箱
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 = '1653xxxxx@qq.com'# 发送邮箱
passwd = '填写你的邮箱SMTP授权码'#邮箱私钥
msg_receivers = ['9066XXXXXX@qq.com']#接受邮箱
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 浏览器头爬虫模拟用户(保姆级图文+实现代码)】
【更多内容敬请期待】


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
可以使用Python中的smtplib和schedule模块实现定时发送邮件指定邮箱。 首先,需要安装smtplib和schedule模块,可以使用以下命令进行安装: ``` pip install smtplib pip install schedule ``` 接下来,可以使用以下代码实现定时发送邮件功能: ```python import smtplib import schedule import time def send_email(): # 设置邮箱地址和密码 from_email = '[email protected]' password = 'your_email_password' # 设置收件人地址 to_email = '[email protected]' # 设置邮件内容 subject = 'Test Email' body = 'This is a test email sent by Python.' # 登录邮箱服务器 server = smtplib.SMTP('smtp.example.com', 587) server.starttls() server.login(from_email, password) # 发送邮件 message = 'Subject: {}\n\n{}'.format(subject, body) server.sendmail(from_email, to_email, message) # 关闭连接 server.quit() # 设置定时任务 schedule.every().day.at('08:00').do(send_email) while True: schedule.run_pending() time.sleep(1) ``` 在上面的代码中,send_email()函数用来发送邮件,其中需要设置发件人的邮箱地址和密码,以及收件人的邮箱地址。同时,还需要设置邮件的主题和内容。 使用schedule模块的every().day.at()方法可以设置定时任务的时间,这里设置为每天8点执行send_email()函数。最后,在主循环中使用schedule.run_pending()方法可以执行定时任务。 注意,在使用该代码前需要将from_email和password替换为自己的邮箱地址和密码,同时也需要设置正确的SMTP服务器地址。 希望这个代码对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值