用Python自动发邮件提醒你周末吃啥

 更新时间:2022年01月11日 10:30:23   作者:Python进阶者  
大家好,本篇文章主要讲的是用Python自动发邮件提醒你周末吃啥,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

前言

前几天在Python交流群里边,大佬分享了一个有趣的代码,用于定时发送菜谱分享,觉得挺有意思,这里拿出来给大家分享。

#yyds干货盘点# 美食天下——使用Python自动发邮件提醒你周末吃个啥_python网络爬虫

实现思路

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

实现过程

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

import requests, bs4
import smtplib
import schedule
import time
from bs4 import BeautifulSoup
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 recipe_spider():
    list_all = ''
    num = 0
    for a in range(1, 11):
        headers = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
        n = '{0}{1}{2}'.format('https://home.meishichina.com/show-top-type-recipe-page-', a, '.html')
        res_foods = requests.get(n, headers=headers)
        bs_foods = bs4.BeautifulSoup(res_foods.text, 'html.parser')
        list_foods = bs_foods.find('div', class_='space_left')

        for food in list_foods.find_all('li'):
            num = num+1
            name = food.find('h2').text.strip()
            foods = food.find('p', class_='subcontent').text.strip()
            url_food = food.find('a')['href'].strip()
            food_info = '''
%s、%s
 %s
 链接: %s
            ''' % (num, name, foods, url_food)
            list_all = list_all+food_info
    return (list_all)

def send_email(list_all):
    global account, password, receiver
    mailhost = 'smtp.qq.com'
    qqmail = smtplib.SMTP_SSL(mailhost, 465)
    # qqmail.connect(mailhost,465)
    qqmail.login(account, password)
    content = '亲爱的,本周的热门菜谱如下' + list_all
    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()


def job():
    print('开始一次任务')
    list_all = recipe_spider()
    send_email(list_all)
    print('任务完成')


if __name__ == '__main__':
    job()

# schedule.every(0.05).minutes.do(job) 
# while True:
#     schedule.run_pending()
#     time.sleep(1)

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

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

#yyds干货盘点# 美食天下——使用Python自动发邮件提醒你周末吃个啥_html_02

你也可以定时给自己发,使用定时任务工具,做个定时任务,每周提醒自己,看看该整个啥好吃的菜!

总结

到此这篇关于用Python自动发邮件提醒你周末吃啥的文章就介绍到这了,更多相关Python自动发邮件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3中lambda表达式与函数式编程讲解

    Python3中lambda表达式与函数式编程讲解

    今天小编就为大家分享一篇关于Python3中lambda表达式与函数式编程讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 浅谈Python的元编程

    浅谈Python的元编程

    提到元这个字,你也许会想到元数据,元数据就是描述数据本身的数据,元类就是类的类,本文的主要目的是向大家介绍这些元编程技术,并且给出实例来演示它们是怎样定制化源代码的行为。刚兴趣的朋友可以参考一下
    2021-09-09
  • 解决BN和Dropout共同使用时会出现的问题

    解决BN和Dropout共同使用时会出现的问题

    这篇文章主要介绍了解决BN和Dropout共同使用时会出现的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 详解Django 中是否使用时区的区别

    详解Django 中是否使用时区的区别

    本篇文章主要介绍了详解Django 中是否使用时区的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Python Asyncio库之asyncio.task常用函数详解

    Python Asyncio库之asyncio.task常用函数详解

    Asyncio在经过一段时间的发展以及获取Curio等第三方库的经验来提供更多的功能,目前高级功能也基本完善。本文主要介绍了Asyncio库中asyncio.task常用函数的使用,需要的可以参考一下
    2023-03-03
  • 在 Python 中使用变量创建文件名的方法

    在 Python 中使用变量创建文件名的方法

    这篇文章主要介绍了在 Python 中使用变量创建文件名,格式化的字符串文字使我们能够通过在字符串前面加上 f 来在字符串中包含表达式和变量,本文给大家详细讲解,需要的朋友可以参考下
    2023-03-03
  • python pandas 解析(读取、写入)CSV 文件的操作方法

    python pandas 解析(读取、写入)CSV 文件的操作方法

    这篇文章主要介绍了python pandas 解析(读取、写入) CSV 文件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • keras实现基于孪生网络的图片相似度计算方式

    keras实现基于孪生网络的图片相似度计算方式

    这篇文章主要介绍了keras实现基于孪生网络的图片相似度计算方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python使用matplotlib绘制图片时x轴的刻度处理

    python使用matplotlib绘制图片时x轴的刻度处理

    在使用matplotlib绘制图片时,x轴的刻度可能比较密集,特别是以日期作为x轴时,则最后会显示不出来。这篇文章主要介绍了python使用matplotlib绘制图片时x轴的刻度处理,需要的朋友可以参考下
    2021-08-08
  • 用Python实现将一张图片分成9宫格的示例

    用Python实现将一张图片分成9宫格的示例

    今天小编就为大家分享一篇用Python实现将一张图片分成9宫格的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论