首页 php教程 PHP源码 抓取最近八天天气(非利用接口,直接从网站提取)

抓取最近八天天气(非利用接口,直接从网站提取)

Jun 01, 2016 pm 02:33 PM
天气 抓取

php代码

<?php
   /*
    *特别注意,第一天没有最高气温数据,第八天没有最低气温数据
    *注意对数字进行过滤时不要忘记对负号进行判断
    *对风力过滤时要考虑到3-5级这种格式
    */
   class weatherfetch{
       private $f;
       function getNum($string) {
           $tmpstr = &#39;&#39;;
           $strlen = strlen($string);
           for($i=0; $i<$strlen; $i++) {
                $str=substr($string, $i, 1);
                $str1=trim($str);
                if(is_numeric($str1)){
                    $tmpstr.=$str1+0;
  
                }
                if($str1=="-"&&is_numeric(substr($string, $i-1, 1))){
                $tmpstr.= $str1;
            }
  
            }
           return $tmpstr;
        }
        function __construct(){
          $this->f= new SaeFetchurl();
  
        }
        function getChineseNum($string){
           $tmpstr = &#39;&#39;;
           $arr = array(1,2,3,4,5,6,7,8,9,0);
          $strlen = strlen($string);
          for($i=0; $i<$strlen; $i++) {      
  
           $str=substr($string, $i, 1);
  
           $str1=trim($str);
           if( ord($str)>0xA0 ){
  
            $tmpstr.= substr($string, $i, 3);
  
            $i = $i+2;
  
           }
  
            if(is_numeric($str1)){
  
                $tmpstr.= $str1;
  
            }
            if($str1=="-"&&is_numeric(substr($string, $i-1, 1))&&is_numeric(substr($string, $i+1, 1))){
                $tmpstr.= $str1;
            }
  
          }
  
                return $tmpstr;
  
        }
        function getChinese($string,$encode="GBK") {
               switch($encode){
                    case "GBK" :$codelength=2;break;
               case "GB2312" :$codelength=3;break;
               case "UTF-8" :$codelength=3;break;
                   case "UTF-16" :$codelength=4;break;
  
               }
               $tmpstr = &#39;&#39;;
               $arr = array(1,2,3,4,5,6,7,8,9,0);
               $strlen = strlen($string);
               for($i=0; $i<$strlen; $i++) {
                    $str=substr($string, $i, 1);
                    $str1=trim($str);
                    if( ord($str)>0xA0 ){
                    $tmpstr.= substr($string, $i, $codelength);
                    $i = $i+$codelength-1;
                    }
  
                }
            return $tmpstr;
        }
       function get($cityid){
           $url="http://www.weather.com.cn/weather/".$cityid.".shtml";
           $data=$this->f->fetch($url);
  
           $sun=explode(&#39;<div class="weatherTopright">&#39;,$data);
           $sun=explode("<dl>",$sun[1]);
           $sun=explode("</dl>",$sun[1]);
           $sun=explode("</strong>",$sun[0]);
           $sunrise=strlen($sun[0]);
           $sunrise=substr($sun[0],$sunrise-5);//日出时间
           $sunset=strlen($sun[1]);
           $sunset=substr($sun[1],$sunset-5);//日落时间
           $sunhour=substr($sunset,0,2)-substr($sunrise,0,2);
           $sunminute=$sunhour*60+substr($sunset,-2)-substr($sunrise,-2);//日照时间
           $yubao=explode(&#39;class="yuBaoTable"&#39;,$data);
           $num=count($yubao);
           $tl=array();
           $th=array();
           $fx=array();
           $fl=array();
           $weather=array();
           //第一天
           $tr=explode("</tr>",$yubao[1]);
           $td=explode("</td>",$tr[0]);
           $weather[]=$this->getChinese($td[3],"UTF-8");//晚上天气
           $fx[]=$this->getChinese($td[5],"UTF-8");//晚上风向
           $fl[]=substr($this->getChineseNum($td[6],"UTF-8"),5);//晚上风力
           $tltemp=explode("<strong>",$td[4]);//最低气温
           $tl[]=$this->getNum($tltemp[1]);
           //从第二天到第七天
           for($i=2;$i<$num-1;$i++){
               $tr=explode("</tr>",$yubao[$i]);
               $td=explode("</td>",$tr[0]);
               $weather[]=$this->getChinese($td[3],"UTF-8");//白天天气
               $fx[]=$this->getChinese($td[5],"UTF-8");//白天风向
               $fltemp=substr($this->getChineseNum($td[6],"UTF-8"),5);
               $fl[]=$fltemp;//白天风力
               $thtemp=explode("<strong>",$td[4]);
               $th[]=$this->getNum($thtemp[1]);//最高气温
               $td=explode("</td>",$tr[1]);
               $tltemp=explode("<strong>",$td[3]);
               $tl[]=$this->getNum($tltemp[1]);//最低气温
  
            }
            //第八天
            $tr=explode("</tr>",$yubao[$num-1]);
            $td=explode("</td>",$tr[0]);
            $weather[]=$this->getChinese($td[3],"UTF-8");//白天天气
            $fx[]=$this->getChinese($td[5],"UTF-8");//白天风向
            $fl[]=substr($this->getChineseNum($td[6],"UTF-8"),5);//白天风力
            $thtemp=explode("<strong>",$td[4]);
            $th[]=$this->getNum($thtemp[1]);//最高气温
            if(count($weather)==8){
                return array("weather"=>$weather,"tl"=>$tl,"th"=>$th,"fx"=>$fx,"fl"=>$fl,"sunset"=>$sunset,"sunrise"=>$sunrise,"sunminute"=>$sunminute);
            }else{
              return 1;
  
            }
        }
        function getday1($cityid){
             $url="http://www.weather.com.cn/weather/".$cityid.".shtml";
             $data=$this->f->fetch($url);
             $yubao=explode(&#39;class="yuBaoTable"&#39;,$data);
             $tr=explode("</tr>",$yubao[1]);
             $td=explode("</td>",$tr[0]);
             $thtemp=explode("<strong>",$td[4]);
             return $this->getNum($thtemp[1]);
  
        }
    }
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1671
14
CakePHP 教程
1428
52
Laravel 教程
1331
25
PHP教程
1276
29
C# 教程
1256
24
如果 Windows 11 的天气小部件未在任务栏中显示,则进行 7 个修复 如果 Windows 11 的天气小部件未在任务栏中显示,则进行 7 个修复 Apr 16, 2023 pm 12:13 PM

Windows11去掉了NewsandInterests部分,取而代之的是Widgets,您可以通过设置打开或关闭它。天气应用程序附带小部件,该应用程序显示您想要的有关天气的所有详细信息和信息。为此,您必须单击并打开应用程序进行查看。一些用户在尝试在任务栏中显示天气时会遇到困难。有些人最终放弃了该功能,因为他们无法解决这个问题。许多人报告说Windows11上缺少任务栏图标,但这很容易修复。有关天气小部件的更多信息,请务必继续阅读。Windows11天气未显示在任务栏上的原因是什么?

如何更改 Windows 11 小部件的语言 如何更改 Windows 11 小部件的语言 May 12, 2023 pm 04:58 PM

Windows11小部件是在桌面上显示信息的小程序。这些可以显示天气、股票或新闻标题。您还可以使用它们在桌面上显示图片或视频。默认情况下,Windows11语言设置为英语,但用户声称小部件栏显示不同的语言。这使非英语人士处于劣势,因为他们可能无法使用小部件。如果您觉得它们没有用,您可以轻松禁用小部件并继续您的活动。但是,如果您发现它们使您的生活更轻松,那么好消息是您可以根据需要更改语言。为什么我的小部件使用不同的语言?如果您发现小部件显示不同的语言,以下是几个原因:国家或地区设置–您可能已经注

适用于 Windows 11 的 5 款最佳天气应用程序 [2022 年列表] 适用于 Windows 11 的 5 款最佳天气应用程序 [2022 年列表] Apr 13, 2023 pm 07:01 PM

适用于桌面的 Windows 11 天气应用程序对于希望为可能带来的任何天气做好准备的人们来说是一个很好的工具。它简单,易于使用且用户友好。在计划您的一天时,天气应用程序绝对是必不可少的。这是因为它可以帮助您避免被雨淋,甚至可以帮助您计划当天的衣橱。Windows 11 天气应用程序做得很好,但一些用户可能正在寻找的不仅仅是一个简单的天气应用程序。其他人可能正在寻找替代品,因为他们的Windows 天气应用程序无法运行。这导致他们为其他天气应用程序寻找资源。它们中的大多数通过各种附加功能为您的位

Scrapy案例解析:如何抓取LinkedIn上公司信息 Scrapy案例解析:如何抓取LinkedIn上公司信息 Jun 23, 2023 am 10:04 AM

Scrapy是一个基于Python的爬虫框架,可以快速而方便地获取互联网上的相关信息。在本篇文章中,我们将通过一个Scrapy案例来详细解析如何抓取LinkedIn上的公司信息。确定目标URL首先,我们需要明确我们的目标是LinkedIn上的公司信息。因此,我们需要找到LinkedIn公司信息页面的URL。打开LinkedIn网站,在搜索框中输入公司名称,在

如何在 Windows 11 上删除天气小部件 如何在 Windows 11 上删除天气小部件 May 11, 2023 pm 08:25 PM

如何从Windows11的任务栏中删除天气小部件摆脱天气小部件的最简单方法之一是在“设置”中禁用它。要通过设置禁用天气小部件,请使用以下步骤:按开始,然后选择设置。当设置打开时,单击左侧列表中的个性化。在右侧,选择任务栏选项。展开任务栏项目部分并关闭小部件开关。当您关闭开关时,天气小部件将从任务栏中消失。如果要重新启用它,请返回开始>设置>个性化>任务栏并重新打开小部件开关。注意:您可以在“设置”菜单的此区域中打开或关闭其他任务栏按钮。例如,您可以删除Teams聊天图标。如何通

使用 PHP 实现抓取 Instagram 信息的示例 使用 PHP 实现抓取 Instagram 信息的示例 Jun 13, 2023 pm 06:26 PM

Instagram是目前最流行的社交媒体之一,拥有着数亿的活跃用户。其中用户上传了数十亿的图片和视频,这些数据对于许多企业和个人来说都是非常有价值的。因此,在许多情况下,需要使用程序自动抓取Instagram数据。本文将介绍如何使用PHP实现Instagram数据的抓取,并提供实现示例。安装PHP的cURL扩展cURL是一个用于在各种

Windows 11 中未显示天气小部件 [已解决] Windows 11 中未显示天气小部件 [已解决] Apr 13, 2023 pm 11:10 PM

天气小部件是允许用户查看其当前位置的天气信息的功能,Windows 会在其系统上自动检测并显示在任务栏上。但最近许多 Windows 用户报告他们无法在任务栏上看到天气小部件显示。他们可能没有在他们的系统上启用它,但他们不知道它,一些用户认为它会在 Windows 中默认启用。天气小部件未显示问题也可能是由于用户帐户配置文件损坏。如果 Windows 用户没有下载并安装必要的 Windows 更新,则可能会导致此类问题。如果您的系统也遇到此类问题,请不要担心,我们在本文中编译了一系列修复程序,可

WIN10右下角天气怎么关 WIN10右下角天气怎么关 Feb 18, 2024 pm 01:38 PM

WIN10操作系统在右下角显示天气的功能是由系统自带的天气应用实现的,如果你不希望在任务栏的右下角显示天气,可以通过以下几种方法进行关闭。方法一:通过设置菜单关闭点击开始菜单,选择“设置”图标(齿轮状图标)。在设置窗口中,选择“个性化”选项。在个性化窗口左侧菜单中,选择“任务栏”。在任务栏设置窗口右侧,找到“系统图标”区域,点击“在任务栏上显示或隐藏系统图标

See all articles