Python定时发送天气预报邮件代码实例


Posted in Python onSeptember 09, 2019

这篇文章主要介绍了Python定时发送天气预报邮件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

用python爬虫爬到的天气预报,使用smtplib和email模块可以发送到邮箱,使用schedule模块可以定时发送。以下是代码~

#导入模块
import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import schedule
import time

#输入邮箱发件人、收件人以及邮箱的授权码
account = str(input('请输入发件人邮箱地址:'))
password = str(input('请输入邮箱授权码:'))
receiver = str(input('请输入收件人邮箱地址:'))

#建立天气网爬虫,爬取天气信息
def weather_spider():
  #模拟浏览器:
  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'
    }
  url='http://www.weather.com.cn/weather/101211001.shtml'
  #数据获取:
  res=requests.get(url,headers=headers)
  res.encoding='utf-8'
  #数据解析:
  soup=BeautifulSoup(res.text,'html.parser')
  #数据提取:
  tem1= soup.find(class_='tem')
  weather1= soup.find(class_='wea')
  tem=tem1.text
  weather=weather1.text
  return tem,weather

#发送邮件的代码
def send_email(tem,weather):
  global account,password,receiver
  mailhost='smtp.qq.com'
  qqmail = smtplib.SMTP()
  qqmail.connect(mailhost,25)
  qqmail.login(account,password)
  content= '衢州的天气是:\n'+tem+weather
  message = MIMEText(content, 'plain', 'utf-8')
  subject = '今日天气预报from python'
  message['Subject'] = Header(subject, 'utf-8')
  try:
    qqmail.sendmail(account, receiver, message.as_string())
    print ('邮件发送成功')
  except:
    print ('邮件发送失败')
  qqmail.quit()

#建立任务
def job():
  print('开始一次任务')
  tem,weather = weather_spider()
  send_email(tem,weather)
  print('任务完成')

#定时发送
schedule.every().day.at("7:00").do(job) 
while True:
  schedule.run_pending()
  time.sleep(1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下使用Psyco模块优化运行速度
Apr 05 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
Tensorflow限制CPU个数实例
Feb 06 Python
对python中return与yield的区别详解
Mar 12 Python
Python 列表中的修改、添加和删除元素的实现
Jun 11 Python
Python Opencv图像处理基本操作代码详解
Aug 31 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
python实现的人脸识别打卡系统
May 08 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
python识别围棋定位棋盘位置
Jul 26 Python
Python中re模块的元字符使用小结
Apr 07 Python
Python 文字识别
May 11 Python
python英语单词测试小程序代码实例
Sep 09 #Python
Python实现TCP通信的示例代码
Sep 09 #Python
Python3使用PySynth制作音乐的方法
Sep 09 #Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 #Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 #Python
pymysql模块的使用(增删改查)详解
Sep 09 #Python
Django之模板层的实现代码
Sep 09 #Python
You might like
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
python中range()与xrange()用法分析
2016/09/21 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
小学家长会邀请函
2014/01/23 职场文书
优秀护士演讲稿
2014/04/30 职场文书
环保宣传标语
2014/06/12 职场文书
承诺书样本
2014/08/30 职场文书
肖申克救赎观后感
2015/06/02 职场文书
摩登时代观后感
2015/06/03 职场文书
北京爱情故事观后感
2015/06/12 职场文书
实习证明模板
2015/06/16 职场文书
获奖感言怎么写
2015/07/31 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
详解JS ES6编码规范
2021/05/07 Javascript
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
Java 多态分析
2022/04/26 Java/Android
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle