• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP实现采集中国天气网未来7天天气

php 搞代码 4年前 (2022-01-01) 30次浏览 已收录 0个评论

这篇文章主要介绍了PHP实现采集中国天气网未来7天天气方法,本文详细的讲解了需求的实现,也可以做为学习PHP采集的入门教程,需要的朋友可以参考下

前言

我们在写一个Web程序的时候,总会想着把自己的网站更美观一些,功能能更多一些,有时候写一些小的工具或者加上小的插件会让我们的站点更加完善。比如万年历功能,比如我们现在要讲的天气预报功能。

当然我们没法利用专业的卫星接受数据,所以我们的天气数据来自现有的天气预报网站。利用天气预报网站提供的数据服务,我们可以写一个PHP爬虫,然后动态采集我们所需要的数据,并且在目标站点更新数据的时候,我们的程序也能做到同步更新,自动地获取数据。

下面就介绍一下如何编写一个简单的PHP数据采集程序(PHP爬虫)。

原理

给定一个网页的URL,使用PHP下载该网页并得到网页内容,然后通过正则表达式将其中我们感兴趣的数据提取出来,然后输出。

具体在这个例子中,我们要抓取的网页是 http:来源gao*daima.com搞@代#码网//www.weather.com.cn/weather/101050101.shtml,我们感兴趣的是页面中的未来7天天气情况。

实现

0.获取天气预报网页的URL:

代码如下:
$url = “http://www.weather.com.cn/weather/101050101.shtml”;
$page_content = file_get_contents($url);

在这里,file_get_contents() 函数会将 $url 指向的网页下载下来,并把网页内容作为一个字符串返回。于是,$page_content 变量中就是我们要抓取的网页的全部HTML代码了。接下来,我们要从其中抽取我们需要的数据。

1.使用正则表达式匹配符合条件的字符串

先输出 $page_content 的值,然后查看网页源代码,观察可知我们需要的字符串可以在

代码如下:

……

这两行的注释里找到。

使用正则表达式来取得 之间的所有内容:

代码如下:
eregi(“(.*)“,$page_content,$res);

2.补全页面中图片的路径

由于远程网页中的图片路径都是像 /m2/i/icon_weather/29×20/d01.gif 这样的相对路径,我们需要把这些路径补全,在它们前面加上 http://www.weather.com.cn。

代码如下:
$forecast = str_replace(“

至此,$forecast 中就是我们需要的天气预报信息了。这个简单的PHP爬虫也就写好了。

源代码

以下是这个抓取天气预报小程序的完整源代码,其中添加了一些测量各部分程序运行时间的代码,并可以通过设置 $start 和 $end 的值来控制抓取哪几天的信息。

代码如下:
$url = “http://www.weather.com.cn/weather/101050101.shtml”;
$t1 = time();
   
$page_content = file_get_contents($url);
$t2 = time();

$start = 1;
$end = 3;

if ($end > 7){
    echo “超出预报能力范围,请重新设置!”;
}else {
    echo “未来”.($end-$start).”天哈尔滨的天气预报(”
              .date(‘Y-m-j’).”发布)”;

    eregi(“–day $start–(.*)–day $end–“, $page_content, $res);

    $forecast = str_replace(”         ”     $t3 = time();

    echo $forecast;

    echo ‘First step costs ‘.($t2 – $t1).’ ms.’;
    echo ‘Last step costs ‘.($t3 – $t2).’ ms.’;
}

以上就是PHP实现采集中国天气网未来7天天气的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP实现采集中国天气网未来7天天气

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址