设为首页 收藏本站
查看: 515|回复: 0

[经验分享] Python发送天气预报信息到手机

[复制链接]

尚未签到

发表于 2017-5-3 10:28:01 | 显示全部楼层 |阅读模式
这个程序很早以前就写过了,而且是参考的别人的写,具体谁的发
-*- coding:utf-8 -*-  
# file:weather.py  
# by Lee, 2010-1-11  
"""  
抓取天气预报信息,并通过pyfetion发送短信通知  
"""
import os  
import re  
import urllib  
import sys  
import time  

from PyFetion import *

def GetWeather():  
try:  
# 获取网页源文件  
sock = urllib.urlopen("http://qq.ip138.com/weather/guangdong/DongGuan.htm")  
strhtml = sock.read()  
strhtml = unicode(strhtml, 'gb2312','ignore').encode('utf-8','ignore')  
# 正则式取温度信息  
theGrades = re.findall('''(\d+)℃''', strhtml)  
# 获取天气描述信息  
weathers = re.findall('''  (.*)''',strhtml)  
25         # 定义时间格式  
26         this_date = str(time.strftime("%Y/%m/%d %a"))  
27         now = int(time.time())  
28         sec = 24*60*60
29         day_today = "今天(%s号)" % str(time.strftime("%d", time.localtime(now+0*sec)))  
30         day_tommo = "明天(%s号)" % str(time.strftime("%d", time.localtime(now+1*sec)))  
31         day_aftom = "后天(%s号)" % str(time.strftime("%d", time.localtime(now+2*sec)))  
32         # 定义短信正文  
33         sms = [this_date]  
34         sms.append("东莞天气")  
35         sms.append("%s:%s, %s-%s℃" % (day_today, weathers[0], theGrades[1], theGrades[0]))  
36         sms.append("%s:%s, %s-%s℃" % (day_tommo, weathers[1], theGrades[3], theGrades[2]))  
37         sms.append("%s:%s, %s-%s℃" % (day_aftom, weathers[2], theGrades[5], theGrades[4]))  
38         sms.append("天气有冷暖,关怀永不变!")  
39         #sms.append("测试中,收到请MSN回复我,谢谢~~")  
40         #sms.append("欢迎对短信格式和每天定点发送时间提出宝贵意见")  
41         smscontent = '\n'.join(sms)  
42         #print len(smscontent)  # check length of sms fetion  
43         return smscontent  #.decode('utf-8').encode('gb2312')  
44     except:  
45         return "There is sth wrong with the weather forecast, please inform the author. thx~"
46   
47 def SendSMS(sms):  
48     myphone = '1589xxxxx67'  # 手机号  
49     mypwd = 'xxxx'  # 登录密码  
50     destphone = ["62487xxxx", "70078xxxx", "69451xxxx"]  # 发送对象飞信号  
51     # 发送目的地改为飞信号,之前用的手机号做目的地发送,别人的收不到短信  
52     print "\nwaiting for login fetion..."
53     fetion = PyFetion(myphone, mypwd, 'TCP')  
54     fetion.login(FetionHidden)  
55     for phone in destphone:  
56         print "sending to", phone  
57         fetion.send_sms(sms, phone, True)  
58         print "OK"
59     fetion.logout()  
60     return True
61   
62 def main():  
63     print "getting out the weather code..."
64     msg = GetWeather()  
65     print "\n", msg  
66 #    SendSMS("测试天气预报")  
67     SendSMS(msg)  
68     print "Done."
69   
70 if __name__ == "__main__":  
71     sys.exit(main())

 在哪里我都忘记了。这里就算是半原创了,如有侵权请及时通知改正。

因为从今天1月1号开始,Google上订阅的天气预报服务已经取消了,估计是Google被施加压力了。反正是收不到天气预报了。正好重拾以前的那个脚本,自己设置抓取信息并发到手机就行了。

之前的脚本是用Python写的,抓的是新浪天气预报页面的信息,使用cocobear提供的PyFetion发送到自己手机上。上周拿来一运行,报error...

原来是飞信平台升级了,PyFetion也跟着升级了,而且新浪天气预报的页面也改版了。好嘛。。。

换用ip138提取的天气信息,重新改写如下

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-372445-1-1.html 上篇帖子: python的time和date处理 下篇帖子: 【Python旧时笔记 七】PyCodeObject初探
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表