现在提供天气预报服务的网站挺多的,一般常见的都是直接在自己网站上使用,有部分的网站提供了web service接口。
- 常见正则方式:常见引用天气预报的方法多是使用正则去解析指定网站的天气预报,使用这种方法有些弊端:1.人 家网站的HTML格式发生了变化,你的程序则需要跟着修改。2.本身解析的正则写起来就不太简单。3.每次解析都要去访问别人的网站,当别人网站发生异常 的时候可能会拖累你的程序。当然你可以从你的应用流程上解决掉一些问题。
- Web service接口:这个当然是首选了,一般提供web service接口的网站都会是自己的服务相对稳定一些。
如果你的网站只需要一个显示一个地区的天气预报的话,那么就直接用吧,如果需要显示多地区的话,那么你可能就需要建立一个自己的IP库了。那天看到 QQ提供了一些这样的服务,于是就简单研究了一下,找出几个有用的接口。其中最令我比较满意的就是这些接口是javascript实现的,可以很容易的做 到各种网站系统的兼容性,不过人家的编码格式是GB2312的~
我使用了Jquery来调用,所有的调用都是基于 http://minisite.qq.com/js/j.minisite.weather.js 研究的结果。
获取当前浏览器的所在地区和IP:
$j.getScript("http://fw.qq.com:80/ipaddress", function() {
if(typeof IPData != "undefined") {
//YoyoSite.Cookie.set("current_ip", IPData[2]+','+IPData[3]);
alert(IPData);
}
});
if(typeof IPData != "undefined") {
//YoyoSite.Cookie.set("current_ip", IPData[2]+','+IPData[3]);
alert(IPData);
}
});
获得当前的天气我简单的封装了一下,这里只说明使用方法(不过……,这个天气预报不太准):
<script language="javascript" src="http://www.greatmoo.com/untest/samples/js/jquery.js"></script>
<script language="javascript" src="http://www.greatmoo.com/untest/samples/weather/weather.js"></script>
<div id="weather_content"></div>
<script language="javascript">
weather.init("weather_content");
</script>
<script language="javascript" src="http://www.greatmoo.com/untest/samples/weather/weather.js"></script>
<div id="weather_content"></div>
<script language="javascript">
weather.init("weather_content");
</script>
调用方法很简单,请主义示例中的 weather_content 这个关键字。
应用实例:http://www.greatmoo.com/untest/samples/weather/weather.php,别忘了对你的页面设置GB2312编码。