Allen
2010-01-05
09:48:54
14261
1
0
0
0
(说明: Google免费的天气预报 停止了,只好找其它的办法了! 还不错,找到以下方法,貌似不错,还没有仔细研究~~!)
免费手机短信天气预报的实现,用以代替移动的天气预报!o(∩_∩)o...
一。google天气预报
登陆地址:http://www.google.com/sms/alerts
可以简单的定制天气短信息
(2009年1月1日停止)
二。google日历实现方法
地址:http://www.google.com/calendar
天气预报系统 提供ical输出已经一年多了,当初是应网友要求做的数据源。因为 Google 日历 中可以导入外部的ical数据,更重要的是,它还提供对导入日历 中的数据给用户发送短信 提醒,而这一切都是免费的。
已经有不少网站和博客介绍了如何利用本站的天气预报数据实现免费的短信 提醒,但基本都是针对的老版系统,在更新了自定义数据格式的工具后,我觉得有必要详细解释一下如何使用这个工具,以及实现免费短信 提醒的步骤。
首先,请确认你满足以下条件
一个属于你自己的GMail账号(请至google .com免费申请即可)。 一部支持中文 短信 功能的手机,移动或联通均可,小灵通不支持。 将手机号码与Google 日历 帐号绑定。 在确定了满足以上条件后,就可以开始下一步:选择数据源
访问天气预报系统 http://weather.raychou.com 在搜索框中输入关注的城市名称,拼音或汉字均可,例如,北京 或beijing 。 页面会自动跳转到天气详情页面,如果搜索到的结果不正确(有部分城市的拼音相同),还可通过搜索框下面的城市列表选择。 滚动到页面最下面的数据自定义工具,点击模板”Google 日历 的短信 提醒”,最下面的URL就是我们想要的自定义数据源的网址。
至此,数据源我们已经得到,接下来就是将其添加到Google 日历 中,并设置短信 提醒:
首先,登陆Google 日历 后,点击页面左下角的”添加”,在弹出菜单中选择”通过URL添加”
再添加页面中,将之前得到的数据源URL复制粘贴到文本框中,点击”添加”。 若提示无法获取网址或其他错误,删除数据源再重复添加即可。
在得到页面提示添加成功后,点击右下角的”设置”,再点击刚才添加的日历 后的”通知”链接,转入日历 通知设置。
在通知设置中,选择通知的接受方式和通知方式,如图所示。注意,提前的时间是相对于预报日期的0点而言,例如提前4小时,就会在每天的20点收到次日的天气预报。
点击”保存”,就大功告成了。
问题是这个周帆的实验室的ical源好像有些不能更新,很无语!那么有以下几个可以选择www.wunderground.com
三。139邮箱实现定时发送免费天气预报短信功能 【转】我们只要找到一个接口,能定时向指定 139.com 邮箱发送天气邮件就可以了,这里就有一个自己开发的接口,有兴趣的朋友可以试试:http://api.liqwei.com/weather/subscription.asp 只要输入 139.com 邮箱地址,选择订阅的城市就可以,而且支持订阅多个城市的天气,自我感觉用起来还行,当然别的邮箱也可以,就是无法收到天气短信,今天本人开通了139邮箱,也已经成功收到天气预报短信,时间是每天晚上8点多点,未来两天的天气情况 注:139免费版邮箱的邮件到达提醒功能是免费的 其他订阅: 哪吒+RSS天气订阅+139组合 http://inezha.com http://weather.all2rss.com/city.asp?sCity=&Submit=%CB%D1%CB%F7
四。其他。 [转]http://hi.baidu.com/toniya/blog/item/703e932c1f34e33c349bf7f4.html
天气预报短信一直是移动通信公司提供的一种收费服务,Google 免费天气预报服务 打破了这个僵局。但是Google 的服务很不稳定,经常收不到短信,而且天气预报内容的定制性差。
首先感谢一下 [email protected] ,本文的主要内容是基于他在小百合 BBS 上发表的如何用飞信定时给自己发免费天气预报 一文做的少许改进。
1. 发送飞信的命令行程序[1, 2, 3, 4, 5, 6, 7]
这个程序主要基于邓东东 开发的 libfetion 库 。这个库不是开源的,但是作者提供了头文件和库文件(在GUI源代码中),所以我们可以使用它的 API 来写一些自己的程序。下面的程序内容很简单,注释也不少,我就只贴源码,不再解释了(注意,编译时需要 curl 的 dev 库)。你可以在这里 下载到我的sendsms 小程序的源代码 。
sendsms |-- Makefile |-- include | |-- common.h | |-- datastruct.h | |-- event.h | |-- fxconfig.h | `-- libfetion.h |-- lib | |-- libfetion_32.a | `-- libfetion_64.a |-- sendsms `-- sendsms.cpp
2. 到中国气象网抓取、过滤天气信息并发送短信的 bash 脚本
你可以从这里 下载到下面的 bash 脚本 ,或者到这里 下载几乎同样功能的 python 脚本 。脚本就不多做解释了,没几行代码,相信稍微研究一下就能看懂。
$ more weatherman.sh#!/bin/bash CITY_LIST=("南京" "北京" "郑州" ) URL_LIST=("101190101" "101010100" "101180101" ) URLBASE="http://www.weather.com.cn/html/weather/"
MY_CITIES=("南京" "北京" ) SMS_USER=("yyyyyyyyy" ) SMS_CITY=("郑州" )
get_html() { i=0for city in ${ CITY_LIST[*]} ; do url=$URLBASE${ URL_LIST[i]} .shtml#wget -e "http_proxy=http://user:[email protected] :8080" -O $city.txt $url wget -O $city.txt $url i=$(( $i+1 ))done }
parse_html() {for city in ${ CITY_LIST[*]} ; do grep -q "dd_0" $city.txt# Select useful part. if [ $? -ne 0 ]; then sed -i -e ^1,/c_1_1/d;/c_1_2/,$d;^ $city.txtelse sed -i -e ^1,/c_1_1/d;/surf/,$d;^ $city.txt sed -i -e ^/dl class="right"/,/dd_0/d;^ $city.txtfi # Remove HTML tags. sed -i -e ^s/<[^>]*>//g;/<!--/d^ $city.txt# Remove empty lines. sed -i -e ^s/ //g;s/°C//g;s/^s*//g;/^$/d^ $city.txt# Cut verbose words. sed -i -e ^s/℃//g;s/高温//g;s/低温//g;s/://g;s/指数//g;^ $city.txt sed -i -e ^s/星期/周/g;s@/@
@g;s/ //g;^ $city.txt# Format file content to SMS. LANG=zh_CN.UTF-8 MES="${city}天气
" MES=$MES` date -d tomorrow +%d` 日周` date -d tomorrow +%a` : MES=$MES` sed -n -e ^1p^ $city.txt | tr -d ^
^ ` , MES=$MES` sed -n -e ^3p^ $city.txt | tr -d ^
^ ` 到 MES=$MES` sed -n -e ^2p^ $city.txt | tr -d ^
^ ` 度, MES=$MES` sed -n -e ^4p^ $city.txt | tr -d ^
^ ` ^
^ MES=$MES` sed -n -e ^5p^ $city.txt | tr -d ^
^ ` : MES=$MES` sed -n -e ^6p^ $city.txt | tr -d ^
^ ` , MES=$MES` sed -n -e ^8p^ $city.txt | tr -d ^
^ ` 到 MES=$MES` sed -n -e ^7p^ $city.txt | tr -d ^
^ ` 度, MES=$MES` sed -n -e ^9p^ $city.txt| tr -d ^
^ ` echo -ne $MES > $city.txtdone }
send_forcast() {for city in ${ MY_CITIES[*]} ; do sendsms -vl -f 13xxxxxxxxx -p ******** "`cat $city.txt`" sleep 1done i=0for user in ${ SMS_USER[*]} ; do sendsms -vl -f 13xxxxxxxxx -p ******** -t ${ SMS_USER[$i]} "`cat ${SMS_CITY[$i]}.txt`" sleep 1 i=$(( $i+1 ))done }
clear_html() {for city in ${ CITY_LIST[*]} ; do rm -f $city.txtdone }
get_html parse_html send_forcast clear_html
3. 将脚本设置为定时执行
安装好 sendsms 到 /usr/bin 之后,将上面脚本放到 YOURPATH 下,然后在命令行执行:crontab -e,将下面一行添加进去:
50 19 * * * /YOURPATH/weatherman.sh 1> /tmp/weatherman.out 2> /tmp/weatherman.err
就设置为每天下午 7 点 50 发送天气预报短信。
五。
饭否 是一个微博客服务,任何人可以用手机免费接收来自好友的新消息。试想如果你的其中一个饭否好友W定时给你天气预报消息,那你就相当于免费接收天气预报短信了。那么具体如何实现这个功能呢?需要用到的工具服务如下:天气预报RSS源、饭否 (或叽歪 等)帐号2个、Feedlr 、Feed43 、Google Reader 、一部手机。
让我们先来说说原理:RSS天气预报源–>饭否API–>饭否发送帐号–>饭否接收帐号–>手机短信 。
其中最重要的是饭否API。要想这个过程自动完成,必须要通过一个API服务将新消息即时自动地发送到饭否帐号上,我找了很久终于找到了一个很好的API服务-Feedlr 。
以上工具有2个不是必须的,Feed43和GR,但用上的话效果会更好。下面我按步骤介绍如何用饭否来接收免费的天气预报短信。
首先介绍不用Feed43和GR是如何实现的:
1、 在weather.all2rss.com/ 提取一个天气预报RSS源 。获取其地址。比如保定的天气预报RSS地址http://weather.all2rss.com/weatherrss.asp?City=%B1%A3%B6%A8
2、 注册两个饭否帐号 。如果你已经有一个,则可以注册一个或两个。建议重新注册两个,因为如果你开通接收好友消息的话不但会接收到天气预报短信,其它好友(假设你有100个)的消息你也会接收到,这时又是一种信息过载 了。
注册的两个饭否帐号一个是用来提供天气预报的,一个是用来接收的。假设他们的名字分别为饭否W和饭否R。
3、 打开Feedlr 。先介绍一下Feedlr,Feedlr是一个通过微博客API提供的服务,向Feedlr提供饭否(或叽歪或Twitter)的帐户信息(用户名、密码),并提交一个RSS源,它即可替你自动将RSS的更新发送到微博客上。
因此我们要将饭否W的信息和天气RSS源提交到Feedlr。
下面以截图简单说明添加过程:
4、 最后,用饭否R关注饭否W,并绑定手机,设置接收好友的信息 。
至此,最简单的做法已经完成了。
但经过我4天的测试,我发现饭否是不支持 70字(一条短信的中文容量)以上的消息内容的,70字以后的文字会自动省略。因此我们必须对天气预报的来源RSS进行修改,使其更简单一些(至少不能超过70字)。
国内有另外一个提供RSS天气的网站,虽然内容较为简洁。但没有weather.all2rss.com提供的详细,所以我决定用Feed43 (在"如何订阅不提供RSS Feed输出的网站? "介绍过)对它的RSS源进行修改。
但问题又出现了,Feed43竟然无法识别weather.all2rss.com的Feed,这时我想起了Google Reader,聪明的读者你一定能想到,就是先用GR订阅weather.all2rss.com的Feed,然后将其放在一个tag下,再将tag共享,具体操作可参看去年写的"如何在你的博客中即时显示另一博客的文章 "。
Feed43是能够识别GR共享出来的Feed的,比如我用GR分享出来的保定天气 。
下面转入到Feed43的操作:
1、 在Feed43里输入GR的天气共享tag地址,进入内容的提取过程。
2、 内容的提取的比较复杂的,如果你看不懂每个表单需要填写什么内容,可参看下面截图填写,一般都可以的。如果有时间,我将会写一个Feed43的使用教程。
【截图1】
【截图2】
用Feed43修改Feed之后,让我们回到开头的第3步,将新的Feed地址添加Feedlr到源地址。根据个人的情况设置一系列的参数,如果你是根据我在Feed43的参数修改源Feed的,那么你可以在Feedlr这样设置参数:
这时整个过程的流程将会变成:RSS天气预报源–>Google Reader共享–>Feed43优化–>饭否API–>饭否发送帐号–>饭否接收帐号–>手机短信 。
这是我制作的保定天气饭否http://fanfou.com/baoding
事实上,这样的做法会使天气预报延时比较严重 ,因为本来直接在Feedlr上提交的Feed现在要多经过2个步骤,首先是GR抓取会有延时,Feed43的抓取也有延时,为了使最后一步的Feedlr延时不那么严重,最好将抓取时间设置得更频繁一些。源地址:http://www.kenengba.com/post/397.html
我和陈华 对这种方法进行了几天的测试,最后确定了所使用的RSS源和服务。
xiayu.info提供免费的天气预报短信 免费资源部落 2009年10月05日 10:29
评论»
看天气预报应该算是我们生活中必须每天要做的事情,虽然天气预报有时候并不十分准确,但是还是可以让我们了解到一些基本的天气变化信息。
免费资源部落曾经给大家介绍过Google免费短信 ,你只要每个月续订一次就可以享受到免费短信 服务了。今天介绍的xiayu.info网站也提供同样的服务,不同的是,网站的主题是“今天需要带伞吗”,提供的天气预报服务地区已经精确到县级,相对来说应该天气预报更精确了。
xiayu.info使用方法介绍:
1、首先打开网站:http://xiayu.info/ ,一般网站会根据你的IP地址给出你所在的城市的天气预报情况,点击“通过手机短信免费接收带伞提醒”输入手机号和设置提醒时间。如下图:
2、当然没有哪个网站会强大像谷歌那样提供各种免费服务,该网站之所以可以提供免费短信 服务,是采用飞信向您发送手机短消息,所以是免费的。另外当前服务只支持移动13开头的号码段。
3、点击确定后,下面就跟飞信添加好友步骤一样了,您将收到一条来自125200261367160xxxx的短信,在您的手机上对这条短信回复“是”就可以添加对方为好友了。
4、现在你就等着xiayu.info提醒你哪天要带雨伞了。当然也可以退订和改订天气预报的城市和地区等。
这里是xiayu.info支持的地区:http://xiayu.info/list.do
链接地址:http://xiayu.info/
文章出自:免费资源部落 www.freehao123.com 版权所有
实践证明,最好的是用139邮箱的短信息服务较好!
Tag:
网络技巧
Google技巧
Google
生活技巧
TTTBLOG