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中的文本处理
Apr 11 Python
使用python3+xlrd解析Excel的实例
May 04 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Python3中在Anaconda环境下安装basemap包
Oct 21 Python
python提取log文件内容并画出图表
Jul 08 Python
python实现邮件发送功能
Aug 10 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
python map比for循环快在哪
Sep 21 Python
python中如何打包用户自定义模块
Sep 23 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
python如何构建mock接口服务
Jan 28 Python
python实现商品进销存管理系统
May 30 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
yii框架配置默认controller和action示例
2014/04/30 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
javascript的BOM汇总
2015/07/16 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
Python 不同对象比较大小示例探讨
2014/08/21 Python
Python进程通信之匿名管道实例讲解
2015/04/11 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
django中的HTML控件及参数传递方法
2018/03/20 Python
python安装scipy的方法步骤
2019/06/26 Python
python十进制转二进制的详解
2020/02/07 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
大学应届生求职简历的自我评价
2013/10/08 职场文书
中专生毕业自我鉴定
2013/11/01 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
周年庆典主持词
2014/04/02 职场文书
积极向上的团队口号
2014/06/06 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
oracle数据库去除重复数据
2022/05/20 Oracle