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+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
pandas 选择某几列的方法
Jul 03 Python
django解决订单并发问题【推荐】
Jul 31 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
Django CBV与FBV原理及实例详解
Aug 12 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
Python学习之时间包使用教程详解
Mar 21 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
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
一个JS翻页效果
2007/07/23 Javascript
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
ionic2中使用自动生成器的方法
2018/03/04 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
python 域名分析工具实现代码
2009/07/15 Python
python基础教程之自定义函数介绍
2014/08/29 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
pygame实现成语填空游戏
2019/10/29 Python
Python必须了解的35个关键词
2020/07/16 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
PyQt 如何创建自定义QWidget
2021/03/24 Python
党员违纪检讨书
2014/02/18 职场文书
投资意向书范本
2014/04/01 职场文书
婚宴致辞
2015/07/28 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
Linux中文件的基本属性介绍
2022/06/01 Servers