python获取天气+email通知

简介:

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
# -*- coding:utf-8 -*- 
 
import  smtplib
import  urllib,urllib2
import  re
 
#定义函数,发送邮件
def  sendMail(body):
     smtp_server  =  'smtp.126.com'
     from_mail  =  'hzpzc68@126.com'
     
     #密码使用授权码替代,否则会报535等认证错误
     mail_pass  =  '*********'
     to_mail  =  [ '1124657106@qq.com' ]
     from_name  =  'Weather Monitor'
     subject  =  'Raining Today!'
     mail  =  [
         "From: %s <%s>"  %  (from_name, from_mail),
         "To: %s"  %  ',' .join(to_mail),
         "Subject: %s"  %  subject,
         "",
         body
         ]
     msg  =  '\n' .join(mail)
     try :
         =  smtplib.SMTP_SSL( 'smtp.126.com' , 465 )
         s.login(from_mail, mail_pass)
         s.sendmail(from_mail, to_mail, msg)
         s.quit()
     except  smtplib.SMTPException as e:
         raise  e
         
if  __name__  = =  "__main__" :
     headers = { 'User-Agent' 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' }
     
     #定位城市,深圳
     url = 'http://www.tianqi.com/shenzhen/'
     try :
         request  =  urllib2.Request(url,headers = headers)
         response  =  urllib2.urlopen(request)
         urlhtml  =  response.read()
     
     except  Exception as e:
         raise  e
     
     #抓取关键字正则表达式    
     re_page  =  re. compile (r '<dd class="name">.*?<h2>(.*?)</h2>.*?<dd class="week">(.*?)</dd>.*?<span>.*?<b>(.*?)</b>(.*?)</span>' ,re.S)
     
     items  =  re_page.findall(urlhtml)
     dic  =  {}
     dic[ "城市" =  items[ 0 ][ 0 ]
     dic[ "日期" =  items[ 0 ][ 1 ]
     dic[ "天气" =  items[ 0 ][ 2 ]
     dic[ "温度" =  items[ 0 ][ 3 ]
     
     #判断天气是否含有“雨”关键字
     if  "雨"  in  dic[ "天气" ]:
         sendMail( "It's rainy today. Remember to bring your umbrella!"  + "\n"  + "城市: "  + dic[ "城市" + "\n"  + "日期: "  + dic[ "日期" + "\n"  + "天气: "  + dic[ "天气" + "\n"  + "温度: "  + dic[ "温度" ])


运行结果:

1.png











本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/2072702,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
存储 数据挖掘 数据库
【Python】python天气数据抓取与数据分析(源码+论文)【独一无二】
【Python】python天气数据抓取与数据分析(源码+论文)【独一无二】
|
7天前
|
Python
Python实现简易天气查询系统
Python实现简易天气查询系统
38 4
|
10月前
|
定位技术 Python
python获取高德地图天气webAPI接口的解决方案
python获取高德地图天气webAPI接口的解决方案
189 0
|
5月前
|
API 索引 Python
Python 教程之 Django(13)使用 Django 的天气应用程序
Python 教程之 Django(13)使用 Django 的天气应用程序
34 0
|
7天前
|
运维 数据可视化 Python
PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测
PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测
|
7天前
|
数据格式 Python
python对NOAA天气数据格式转换
python对NOAA天气数据格式转换
|
10月前
|
JavaScript 前端开发 API
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
259 0
|
7天前
|
存储 数据可视化 API
Python项目开发:Flask基于Python的天气数据可视化平台
Python项目开发:Flask基于Python的天气数据可视化平台
73 0
|
7天前
|
API 索引 Python
Python 教程之 Django(13)使用 Django 的天气应用程序
Python 教程之 Django(13)使用 Django 的天气应用程序
30 0
Python 教程之 Django(13)使用 Django 的天气应用程序
|
7天前
|
JSON API 数据格式
Python实战演练之Python实现一个简单的天气查询应用
Python实战演练之Python实现一个简单的天气查询应用