1. php怎么抓取天气预报
可以借由php的api或者preg_match_all偷偷撷取去达成目的
这里给你一段我给台湾朋友有一段源码
<?php
header("Content-Type:text/html;charset=utf-8");
functiongetWeather($city){
$toURL="
$city.htm";
$post=array();
$ch=curl_init();
$options=array(
CURLOPT_REFERER=>'',
CURLOPT_URL=>$toURL,
CURLOPT_VERBOSE=>0,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_USERAGENT=>"Mozilla/4.0(compatible;)",
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>http_build_query($post),
);
curl_setopt_array($ch,$options);
$result=curl_exec($ch);
curl_close($ch);
//连接中央气象局
echo'<pre>';
preg_match_all('/<tableclass="FcstBoxTable01"[^>]*[^>]*>(.*)</div>/si',$result,$matches,PREG_SET_ORDER);
preg_match_all('/<tdnowrap="nowrap"[^>]*[^>]*>(.*)</td>/si',$matches[0][1],$m1,PREG_SET_ORDER);
$m2=explode('</td>',$m1[0][1]);
//print_r($m2);//取得每日资料m2[0~6]
$weather=array();
for($i=0;$i<=6;$i++){
preg_match_all('/src=[^>]*[^>](.*)/si',$m2[$i],$m5,PREG_SET_ORDER);//取得天气图档
$m6=explode('"',$m5[0][0]);
$wi='
($m6[1],'../../');
$wtitle=$m6[3];
print_r($wtitle);
$weather[$i]['date']=date("m-d",mktime(0,0,0,date("m"),date("d")+$i,date("Y")));
$weather[$i]['temperature']=trim(strip_tags($m2[$i]));
$weather[$i]['title']=$wtitle;
$weather[$i]['img']=$wi;
}
return($weather);
}
$weather=getWeather("Taipei_City");
print_r($weather);
//header("Location:loc.php");
?>
首先
$toURL="http://www.cwb.gov.tw/V7/forecast/taiwan/inc/city/$city.htm";
这里是读取资料的网址
上面的是台湾中央气象局
preg_match_all('/<tableclass="FcstBoxTable01"[^>]*[^>]*>(.*)</div>/si',$result,$matches,PREG_SET_ORDER);
preg_match_all('/<tdnowrap="nowrap"[^>]*[^>]*>(.*)</td>/si',$matches[0][1],$m1,PREG_SET_ORDER);
这里是截取台湾中央气象局网页信息table class="FcstBoxTable01" [^>]*[^>]*>(.*)</div>的资料以及<td nowrap="nowrap" [^>]*[^>]*>(.*)</td>的资料分别是1天跟1周
$m2=explode('</td>',$m1[0][1]);
//print_r($m2);//取得每日资料m2[0~6]
这里是取得每日的资料
preg_match_all('/src=[^>]*[^>](.*)/si',$m2[$i],$m5,PREG_SET_ORDER);//取得天气图档
这里是取得天气的图档
$m6=explode('"',$m5[0][0]);
$wi='
($m6[1],'../../');
$wtitle=$m6[3];
print_r($wtitle);
$weather[$i]['date']=date("m-d",mktime(0,0,0,date("m"),date("d")+$i,date("Y")));
$weather[$i]['temperature']=trim(strip_tags($m2[$i]));
$weather[$i]['title']=$wtitle;
$weather[$i]['img']=$wi;
这里是返回的网址,日期,标题,图档等等的资料
$weather=getWeather("Taipei_City");
print_r($weather);
然后这里是显示出地区的一周天气预报
结论:就是如果你想从网站上面截取天气预报
在php可以是用preg_match_all(网页的表格table,表格的列数tr,表格的栏位td,或者更加广泛的标签div等等获取)
2. HTML 求做一个简单的桂林天气预报网页
(源代码)
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8"/>
<title></title>
<linkrel="stylesheet"type="text/css"href="css/wai.css"/>
</head>
<body>
<divclass="box">
<divclass="top_box">桂林天气预报</div>
<dlclass="date_box">
<dtclass="tubiao"><imgsrc="img/3.jpg"/></dt>
<dtclass="date">2012年03月14日</dt>
<dtclass="gl">桂林</dt>
<dtclass="zy">气象信息由<span>中央气象</span>台提供</dt>
</dl>
<dlclass="nav_box1">
<dtclass="current">当前天气</dt>
<dtclass="say"><imgsrc="img/2.jpg"/></dt>
<dtclass="shower"><pclass="zy2">阵雨</p><p>12℃~18℃</p></dt>
<dtclass="wz">
<ul>
<liclass="fl">·风力:北风小于3级</li>
<li>·紫外线强度:弱</li>
<li>·空气质量:良</li>
</ul>
</dt>
</dl>
<dlclass="nav_box2">
<dtclass="current">72小时天气预报</dt>
<dtclass="date2">2012-03-14</dt>
<dtclass="date2">2012-03-15</dt>
<dtclass="date2">2012-03-16</dt>
<dtclass="say2"><imgsrc="img/1.jpg"/></dt>
<dtclass="say2"><imgsrc="img/1.jpg"/></dt>
<dtclass="say2"><imgsrc="img/1.jpg"/></dt>
<dtclass="wz2">
<ul>
<li>阵雨</li>
<li>12℃~18℃</li>
<li>北风小于3级</li>
</ul>
</dt>
<dtclass="wz2">
<ul>
<li>阵雨</li>
<li>12℃~18℃</li>
<li>北风小于3级</li>
</ul>
</dt>
<dtclass="wz2">
<ul>
<li>阵雨</li>
<li>12℃~18℃</li>
<li>北风小于3级</li>
</ul>
</dt>
</dl>
<dlclass="nav_box3">
<dtclass="tubiao2"><imgsrc="img/4.jpg"/></dt>
<dtclass="city">城市指数</dt>
<dtclass="gd"><ahref="#">更多</a></dt>
<dtclass="ht"></dt>
<dtclass="nav3_l">
<ul>
<li>穿衣指数</li>
<li>舒适度指数</li>
<li>晨练指数</li>
<li>感冒指数</li>
<li>空调指数</li>
<li>洗车指数</li>
<li>空气污染指数</li>
<li>啤酒指数</li>
<li>晾晒指数</li>
<li>旅行指数</ul>
</ul>
</dt>
<dtclass="nav3_z">
<ul>
<li>舒适</li>
<li>舒适</li>
<li>较不宜</li>
<li>易发</li>
<li>较少开启</li>
<li>不宜</li>
<li>良</li>
<li>较适宜</li>
<li>不太适宜</li>
<li>适宜</ul>
</ul>
</dt>
<dtclass="nav3_r">
<ul>
<li>建议着溥型套装或牛仔衫裤等春秋过渡装。年老体弱者宜着套装...</li>
<li>温度适宜,风力不大,您在这样的天气条件下,会感到比较清爽和...</li>
<li>有降水,较不宜晨练,室外锻炼清携带雨具.建议年老体弱人群适...</li>
<li>昼夜温差大,且空气湿度较大,易发生感冒,请注意适当增减衣服...</li>
<li>您将感到很舒适,一般不需要开启空调...</li>
<li>不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上...</li>
<li>气象条件有利于空气污染物稀释、扩散和清除,可以室外正常活动...</li>
<li>适理的饮用啤酒可能会增加您舒适的感觉,但要注意适千万不要过...</li>
<li>有降水,可能会淋湿晾晒的衣物,不太适宜晾晒,请随时注意天气...</li>
<li>有降水,温度适宜,在细雨中游玩别有一番情调,可不要错过机会...</ul>
</ul>
</dt>
</dl>
</div>
</body>
</html>
(CSS样式)
*{
margin:0;
padding:0;
}
ulli{
list-style:none;
}
.top_box{
width:100px;
height:30px;
background:#FFFFFF;
text-align:center;
line-height:30px;
color:blue;
font-weight:bold;
position:absolute;
margin-left:255px;
margin-top:-18px;
}
.box{
width:590px;
height:651px;
border:1pxsolid#0c5d0b;
margin:20pxauto;
background:#FFFFFF;
position:relative;
}
.date_box{
width:550px;
height:35px;
margin:5pxauto;
background:url(../img/5.jpg)no-repeat;
}
.tubiao{
width:35px;
}
.tubiaoimg{
margin-left:10px;
}
.date{
width:130px;
}
.gl{
width:50px;
}
.tubiao,.date,.gl,.zy{
float:left;
height:35px;
height:35px;
color:#b60329;
font-size:14px;
line-height:35px;
font-weight:bold;
}
.zy{
width:230px;
float:right;
text-align:center;
}
.zyspan{
color:black;
}
.nav_box1{
width:505px;
height:100px;
border:1pxsolidgainsboro;
margin:auto;
margin:5pxauto;
}
.current{
width:505px;
height:25px;
background:url(../img/6.jpg)no-repeat;
color:#1c385a;
line-height:25px;
text-indent:1em;
font-size:14px;
font-weight:bold;
}
.say{
width:180px;
height:75px;
float:left;
}
.sayimg{
margin:10px60px;
}
.shower{
width:140px;
height:75px;
float:left;
background:#edf1fa;
text-align:center;
color:#15376b;
font-size:14px;
}
.zy2{
width:140px;
height:20px;
margin-top:15px;
}
.wz{
width:185px;
height:75px;
float:left;
color:#15376b;
font-size:14px;
}
.wzulli{
list-style:none;
text-align:center;
}
.fl{
width:185px;
height:20px;
margin-top:5px;
}
.nav_box2{
width:505px;
height:170px;
border:1pxsolidgainsboro;
margin:5pxauto;
}
.date2{
width:155px;
height:22px;
float:left;
margin-left:10px;
margin-top:10px;
background:#eeeeee;
font-size:14px;
text-align:center;
line-height:22px;
}
.say2{
width:155px;
height:55px;
float:left;
margin-left:10px;
text-align:center;
}
.say2img{
margin-top:10px;
}
.wz2{
width:155px;
height:50px;
background:#eef3f7;
float:left;
margin-left:10px;
}
.wz2ulli{
list-style:none;
text-align:center;
font-size:12px;
}
.nav_box3{
width:505px;
height:270px;
border:1pxsolidgainsboro;
margin:5pxauto;
}
.city{
width:100px;
height:35px;
text-align:center;
float:left;
}
.tubiao2{
width:35px;
height:35px;
color:#b60329;
float:left;
}
.tubiao2img{
margin-left:20px;
}
.gd{
width:35px;
height:35px;
float:right;
}
.city,.tubiao2,.gd{
font-weight:bold;
font-size:14px;
line-height:35px;
}
.gda{
text-decoration:none;
color:black;
display:block;
}
.gda:hover{
color:darkred;
}
.ht{
width:480px;
height:3px;
margin:auto;
background:url(../img/9.jpg)no-repeat;
margin-top:35px;
}
.nav3_l{
width:90px;
height:220px;
float:left;
font-size:12px;
}
.nav3_lulli{
width:90px;
text-align:left;
font-weight:bold;
color:#15376B;
text-indent:1em;
}
.nav3_z{
width:60px;
height:220px;
}
.nav3_zulli{
width:60px;
text-align:left;
font-weight:bold;
color:#000000;
}
.nav3_r{
width:350px;
height:220px;
}
.nav3_r,.nav3_z{
font-size:12px;
float:left;
}
.nav3_rulli{
width:350px;
text-align:left;
color:#666666;
}
.nav3_rulli,.nav3_zulli,.nav3_lulli{
font-weight:bold;
line-height:22px;
height:22px;
}
3. 网页天气预报插件代码
不用安装插件,你把下面的代码插入你的网页中就可以了:第一种: 代码: <iframe width="145" height="130" border="0" align="center" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" src="" allowTransparency="true"></iframe> 效果预览: 说明:这种适合于在网页的边栏插入。但一个缺点是,上面的4个城市是既定的,无法改成别的。插入时,选好网页上的位置,直接将左栏的源代码全部拷进去就行了 第二种: 代码: <IFRAME ID='ifm2' WIDTH='189' HEIGHT='190' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' SRC=''></IFRAME> 效果预览: 说明:这种 也适合于在网页的边栏插入。上面的城市可以自定,比如厦门可改成别的。定制的方法是修改我代码中标红的数字,从1开始代表“香港”开始,每个数字都代表一个城市,厦门是287,具体要哪个城市自己找一下罢。 第三种: 代码: <IFRAME ID='ifm2' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' src=""></iframe> 效果预览: 说明:这种适合于在网页的头栏插入。上面的城市可以自定,比如 石家庄可改成别的。定制的方法是修改我代码中标红的数字。具体各个城市对照的id表可在此下载:城市名称及ID对照表(请右键点击—>另存为)。 第四种: 代码: <iframe width="469" height="218" border="0" align="center" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" src="厦门" allowTransparency="true"></iframe> 效果预览: 说明:这种适合于在网页的正栏插入。上面的城市可以自定,比如厦门可改成别的。定制的方法是修改我代码中标红的 名称。这里比较简单,直接用汉字改就行了。比如是福州的,你就直接把“厦门”改成福州就行。 第五种: 代码: <IFRAME ID='ifm1' WIDTH='405' HEIGHT='332' ALIGN='center' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' SRC=""></IFRAME> 效果预览: 第六种: 代码: <iframe width=160 height=230 frameborder=0 scrolling=NO src=南昌></iframe> 效果预览: 说明:这种适合于在网页的边栏插入。上面的城市可以自定,比如南昌可改成别的。定制的方法是修改我代码中标红的名称。这里比较简单,直接用汉字改就行了。比如是福州的,你就直接把“厦门”改成福州就行
很不错哦,你可以试下
qgulqjbsvk62041435102011-10-12 9:09:45
4. 天气预flash格式的代码
http://www.weather.com.cn/static/html/weather_cj.shtml
进上面的网站,里面有很多代码,非常好用!
呵呵,好喜欢你的高分O(∩_∩)O哈哈~