Maison 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]);
  
        }
    }
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

7 correctifs à apporter si le widget météo de Windows 11 n'apparaît pas dans la barre des tâches 7 correctifs à apporter si le widget météo de Windows 11 n'apparaît pas dans la barre des tâches Apr 16, 2023 pm 12:13 PM

Windows 11 s'est débarrassé de la section Actualités et centres d'intérêt et l'a remplacée par des widgets, que vous pouvez activer ou désactiver via les paramètres. L'application Météo est livrée avec des widgets qui affichent tous les détails et informations que vous souhaitez sur la météo. Pour ce faire, vous devez cliquer et ouvrir l'application pour la visualiser. Certains utilisateurs rencontrent des difficultés lorsqu'ils tentent d'afficher la météo dans la barre des tâches. Certaines personnes finissent par abandonner la fonctionnalité car elles ne parviennent pas à résoudre le problème. De nombreuses personnes ont signalé des icônes manquantes dans la barre des tâches sous Windows 11, mais cela est facile à corriger. Pour plus d’informations sur le widget météo, continuez à lire. Quelle est la raison pour laquelle la météo de Windows 11 n’apparaît pas dans la barre des tâches ?

Comment changer la langue des widgets Windows 11 Comment changer la langue des widgets Windows 11 May 12, 2023 pm 04:58 PM

Les widgets Windows 11 sont de petits programmes qui affichent des informations sur le bureau. Ceux-ci peuvent afficher la météo, les actions ou les titres d’actualité. Vous pouvez également les utiliser pour afficher des images ou des vidéos sur votre bureau. Par défaut, la langue de Windows 11 est définie sur l'anglais, mais les utilisateurs affirment que la barre de widgets affiche une langue différente. Cela désavantage les non-anglophones car ils ne pourront peut-être pas utiliser le widget. Si vous les trouvez inutiles, vous pouvez facilement désactiver les widgets et continuer votre activité. Cependant, si vous trouvez qu'ils vous facilitent la vie, la bonne nouvelle est que vous pouvez changer la langue si vous le souhaitez. Pourquoi mes widgets sont-ils dans différentes langues ? Si vous constatez que le widget s'affiche dans une langue différente, voici quelques raisons : Paramètres de pays ou de région – Vous avez peut-être

Les 5 meilleures applications météo pour Windows 11 [Liste 2022] Les 5 meilleures applications météo pour Windows 11 [Liste 2022] Apr 13, 2023 pm 07:01 PM

L'application Météo Windows 11 pour ordinateur de bureau est un excellent outil pour les personnes qui souhaitent se préparer aux conditions météorologiques. C'est simple, facile à utiliser et convivial. Les applications météo sont indispensables pour planifier votre journée. En effet, cela peut vous aider à éviter de vous faire surprendre par la pluie et peut même vous aider à planifier votre garde-robe pour la journée. L'application Météo Windows 11 fait un excellent travail, mais certains utilisateurs recherchent peut-être plus qu'une simple application météo. D'autres recherchent peut-être un remplaçant car leur application météo Windows ne fonctionne pas. Cela les a amenés à rechercher des ressources pour d’autres applications météorologiques. La plupart d’entre eux vous offrent une variété de fonctionnalités supplémentaires

Analyse de cas Scrapy : Comment explorer les informations de l'entreprise sur LinkedIn Analyse de cas Scrapy : Comment explorer les informations de l'entreprise sur LinkedIn Jun 23, 2023 am 10:04 AM

Scrapy est un framework d'exploration basé sur Python qui peut obtenir rapidement et facilement des informations pertinentes sur Internet. Dans cet article, nous utiliserons un cas Scrapy pour analyser en détail comment explorer les informations d'une entreprise sur LinkedIn. Déterminer l'URL cible Tout d'abord, nous devons indiquer clairement que notre cible est les informations de l'entreprise sur LinkedIn. Par conséquent, nous devons trouver l’URL de la page d’informations sur l’entreprise LinkedIn. Ouvrez le site Web LinkedIn, saisissez le nom de l'entreprise dans le champ de recherche et

Comment supprimer le widget météo sur Windows 11 Comment supprimer le widget météo sur Windows 11 May 11, 2023 pm 08:25 PM

Comment supprimer le widget météo de la barre des tâches dans Windows 11 L'un des moyens les plus simples de se débarrasser du widget météo consiste à le désactiver dans Paramètres. Pour désactiver le widget météo via les paramètres, procédez comme suit : Appuyez sur Démarrer et sélectionnez Paramètres. Lorsque les paramètres s'ouvrent, cliquez sur Personnaliser dans la liste de gauche. Sur la droite, sélectionnez Options de la barre des tâches. Développez la section Éléments de la barre des tâches et désactivez le commutateur Widgets. Lorsque vous désactivez le commutateur, le widget météo disparaît de la barre des tâches. Si vous souhaitez le réactiver, revenez à Démarrer > Paramètres > Personnalisation > Barre des tâches et réactivez le commutateur des widgets. Remarque : Vous pouvez activer ou désactiver d'autres boutons de la barre des tâches dans cette zone du menu Paramètres. Par exemple, vous pouvez supprimer l'icône de discussion Teams. Comment réussir

Exemple de récupération d'informations Instagram à l'aide de PHP Exemple de récupération d'informations Instagram à l'aide de PHP Jun 13, 2023 pm 06:26 PM

Instagram est aujourd’hui l’un des réseaux sociaux les plus populaires, avec des centaines de millions d’utilisateurs actifs. Les utilisateurs téléchargent des milliards de photos et de vidéos, et ces données sont très précieuses pour de nombreuses entreprises et particuliers. Par conséquent, dans de nombreux cas, il est nécessaire d’utiliser un programme pour récupérer automatiquement les données Instagram. Cet article expliquera comment utiliser PHP pour capturer des données Instagram et fournira des exemples de mise en œuvre. Installer l'extension cURL pour PHP cURL est un outil utilisé dans divers

Le widget météo n'apparaît pas dans Windows 11 [Résolu] Le widget météo n'apparaît pas dans Windows 11 [Résolu] Apr 13, 2023 pm 11:10 PM

Le widget météo est une fonctionnalité qui permet aux utilisateurs d'afficher des informations météorologiques pour leur emplacement actuel, que Windows détecte automatiquement sur leurs systèmes et affiche dans la barre des tâches. Mais récemment, de nombreux utilisateurs de Windows ont signalé qu'ils ne pouvaient pas voir l'affichage du widget météo dans la barre des tâches. Ils ne l'ont peut-être pas activé sur leur système, mais ils ne le savent pas, et certains utilisateurs pensent qu'il est activé par défaut dans Windows. Le problème du widget météo qui n'affiche pas peut également être dû à un profil de compte utilisateur corrompu. De tels problèmes peuvent survenir si les utilisateurs Windows ne téléchargent pas et n'installent pas les mises à jour Windows nécessaires. Si votre système est également confronté à de tels problèmes, ne vous inquiétez pas, nous avons compilé une série de correctifs dans cet article pour

Comment désactiver la météo dans le coin inférieur droit de WIN10 Comment désactiver la météo dans le coin inférieur droit de WIN10 Feb 18, 2024 pm 01:38 PM

La fonction d'affichage de la météo dans le coin inférieur droit du système d'exploitation WIN10 est implémentée par l'application météo fournie avec le système. Si vous ne souhaitez pas afficher la météo dans le coin inférieur droit de la barre des tâches, vous pouvez la désactiver. à travers les méthodes suivantes. Méthode 1 : Fermez via le menu des paramètres. Cliquez sur le menu Démarrer et sélectionnez l'icône "Paramètres" (icône en forme d'engrenage). Dans la fenêtre des paramètres, sélectionnez l'option "Personnaliser". Dans le menu sur le côté gauche de la fenêtre de personnalisation, sélectionnez Barre des tâches. Sur le côté droit de la fenêtre des paramètres de la barre des tâches, recherchez la zone « Icônes système » et cliquez sur « Afficher ou masquer les icônes système dans la barre des tâches ».

See all articles