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 相关文章推荐
pycharm 使用心得(三)Hello world!
Jun 05 Python
Python使用正则匹配实现抓图代码分享
Apr 02 Python
python学生管理系统代码实现
Apr 05 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
python设定并获取socket超时时间的方法
Jan 12 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
Python input函数使用实例解析
Nov 22 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
Nov 17 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实现的mongoDB单例模式操作类
2018/01/20 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
javascript基础知识
2016/06/07 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[02:15]2015国际邀请赛选手档案IG.Ferrari 430
2015/07/30 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python多线程编程中的join函数使用心得
2014/09/02 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python处理文本换行符实例代码
2018/02/03 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
如何通过python实现人脸识别验证
2020/01/17 Python
Python 实现一个计时器
2020/07/28 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
介绍下Java中==和equals的区别
2013/09/01 面试题
高中三年学习生活的自我评价
2013/10/10 职场文书
应届生自荐信范文
2014/02/21 职场文书
党员评议思想汇报
2014/10/08 职场文书
国情备忘录观后感
2015/06/04 职场文书
毕业生学校组织意见
2015/06/04 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
Python matplotlib绘制雷达图
2022/04/13 Python