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

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

Jun 01, 2016 pm 02:33 PM
cuaca merangkak

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]);
  
        }
    }
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

7 pembetulan untuk dibuat jika widget cuaca Windows 11 tidak muncul dalam bar tugas 7 pembetulan untuk dibuat jika widget cuaca Windows 11 tidak muncul dalam bar tugas Apr 16, 2023 pm 12:13 PM

Windows 11 telah menyingkirkan bahagian Berita dan Minat dan menggantikannya dengan Widget, yang boleh anda hidupkan atau matikan melalui tetapan. Apl cuaca dilengkapi dengan widget yang menunjukkan semua butiran dan maklumat yang anda inginkan tentang cuaca. Untuk melakukan ini, anda perlu mengklik dan membuka aplikasi untuk melihatnya. Sesetengah pengguna mengalami kesukaran apabila cuba memaparkan cuaca dalam bar tugas. Sesetengah orang akhirnya meninggalkan ciri itu kerana mereka tidak dapat menyelesaikan masalah. Ramai orang telah melaporkan kehilangan ikon bar tugas pada Windows 11, tetapi ini mudah untuk diperbaiki. Untuk mendapatkan maklumat lanjut tentang widget cuaca, pastikan anda terus membaca. Apakah sebab mengapa cuaca Windows 11 tidak muncul pada bar tugas?

Bagaimana untuk menukar bahasa widget Windows 11 Bagaimana untuk menukar bahasa widget Windows 11 May 12, 2023 pm 04:58 PM

Widget Windows 11 ialah program kecil yang memaparkan maklumat pada desktop. Ini boleh memaparkan cuaca, saham atau tajuk berita. Anda juga boleh menggunakannya untuk memaparkan gambar atau video pada desktop anda. Secara lalai, bahasa Windows 11 ditetapkan kepada bahasa Inggeris, tetapi pengguna mendakwa bahawa bar widget memaparkan bahasa yang berbeza. Ini meletakkan penutur bukan bahasa Inggeris pada kelemahan kerana mereka mungkin tidak dapat menggunakan widget. Jika anda mendapati ia tidak berguna, anda boleh melumpuhkan widget dengan mudah dan meneruskan aktiviti anda. Walau bagaimanapun, jika anda mendapati bahawa mereka menjadikan hidup anda lebih mudah, berita baiknya ialah anda boleh menukar bahasa jika anda mahu. Mengapakah widget saya dalam bahasa yang berbeza? Jika anda mendapati bahawa widget dipaparkan dalam bahasa yang berbeza, berikut ialah beberapa sebab: Tetapan Negara atau Wilayah – Anda mungkin mempunyai

5 Apl Cuaca Terbaik untuk Windows 11 [Senarai 2022] 5 Apl Cuaca Terbaik untuk Windows 11 [Senarai 2022] Apr 13, 2023 pm 07:01 PM

Apl Cuaca Windows 11 untuk desktop ialah alat yang hebat untuk orang yang ingin bersedia untuk apa jua cuaca yang mungkin dibawa. Ia ringkas, mudah digunakan dan mesra pengguna. Apl cuaca mesti ada semasa merancang hari anda. Ini kerana ia boleh membantu anda mengelak daripada terperangkap dalam hujan malah boleh membantu anda merancang almari pakaian anda untuk hari itu. Apl Cuaca Windows 11 berfungsi dengan baik, tetapi sesetengah pengguna mungkin mencari lebih daripada sekadar apl cuaca ringkas. Orang lain mungkin mencari pengganti kerana apl cuaca Windows mereka tidak berfungsi. Ini membawa mereka kepada sumber sumber untuk aplikasi cuaca lain. Kebanyakan mereka menyediakan anda dengan pelbagai ciri tambahan

Analisis kes buruk: Cara merangkak maklumat syarikat di LinkedIn Analisis kes buruk: Cara merangkak maklumat syarikat di LinkedIn Jun 23, 2023 am 10:04 AM

Scrapy ialah rangka kerja perangkak berasaskan Python yang boleh mendapatkan maklumat berkaitan dengan cepat dan mudah di Internet. Dalam artikel ini, kami akan menggunakan kes Scrapy untuk menganalisis secara terperinci cara merangkak maklumat syarikat di LinkedIn. Tentukan URL sasaran Mula-mula, kita perlu menjelaskan dengan jelas bahawa sasaran kita ialah maklumat syarikat di LinkedIn. Oleh itu, kita perlu mencari URL halaman maklumat syarikat LinkedIn. Buka laman web LinkedIn, masukkan nama syarikat dalam kotak carian, dan

Bagaimana untuk mengalih keluar widget cuaca pada Windows 11 Bagaimana untuk mengalih keluar widget cuaca pada Windows 11 May 11, 2023 pm 08:25 PM

Cara Mengalih Keluar Widget Cuaca daripada Bar Tugas dalam Windows 11 Salah satu cara paling mudah untuk menyingkirkan widget cuaca adalah dengan melumpuhkannya dalam Tetapan. Untuk melumpuhkan widget cuaca melalui tetapan, gunakan langkah berikut: Tekan Mula dan pilih Tetapan. Apabila tetapan dibuka, klik Peribadikan dalam senarai di sebelah kiri. Di sebelah kanan, pilih Pilihan Bar Tugas. Kembangkan bahagian Item Bar Tugas dan matikan suis Widget. Apabila anda mematikan suis, widget cuaca hilang daripada bar tugas. Jika anda ingin mendayakannya semula, kembali ke Mula > Tetapan > Pemperibadian > Bar tugas dan hidupkan semula suis widget. Nota: Anda boleh menghidupkan atau mematikan butang bar tugas lain di kawasan menu Tetapan ini. Contohnya, anda boleh mengalih keluar ikon sembang Pasukan. Bagaimana untuk lulus

Contoh mengikis maklumat Instagram menggunakan PHP Contoh mengikis maklumat Instagram menggunakan PHP Jun 13, 2023 pm 06:26 PM

Instagram adalah salah satu media sosial paling popular hari ini, dengan ratusan juta pengguna aktif. Pengguna memuat naik berbilion gambar dan video, dan data ini sangat berharga kepada banyak perniagaan dan individu. Oleh itu, dalam banyak kes, perlu menggunakan program untuk mengikis data Instagram secara automatik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menangkap data Instagram dan memberikan contoh pelaksanaan. Pasang sambungan cURL untuk PHP cURL ialah alat yang digunakan dalam pelbagai

Widget cuaca tidak muncul dalam Windows 11 [Diselesaikan] Widget cuaca tidak muncul dalam Windows 11 [Diselesaikan] Apr 13, 2023 pm 11:10 PM

Widget cuaca ialah ciri yang membolehkan pengguna melihat maklumat cuaca untuk lokasi semasa mereka, yang Windows mengesan secara automatik pada sistem mereka dan memaparkan pada bar tugas. Tetapi baru-baru ini ramai pengguna Windows telah melaporkan bahawa mereka tidak dapat melihat paparan widget cuaca pada bar tugas. Mereka mungkin tidak mendayakannya pada sistem mereka, tetapi mereka tidak tahu mengenainya, dan sesetengah pengguna berpendapat ia didayakan secara lalai dalam Windows. Widget cuaca yang tidak menunjukkan isu juga boleh disebabkan oleh profil akaun pengguna yang rosak. Jika pengguna Windows tidak memuat turun dan memasang kemas kini Windows yang diperlukan, ia boleh menyebabkan masalah sedemikian. Jika sistem anda juga menghadapi masalah sedemikian, jangan risau, kami telah menyusun satu siri pembetulan dalam artikel ini untuk

Bagaimana untuk mematikan cuaca di sudut kanan bawah WIN10 Bagaimana untuk mematikan cuaca di sudut kanan bawah WIN10 Feb 18, 2024 pm 01:38 PM

Fungsi memaparkan cuaca di sudut kanan bawah sistem pengendalian WIN10 dilaksanakan oleh aplikasi cuaca yang disertakan dengan sistem Jika anda tidak mahu memaparkan cuaca di sudut kanan bawah bar tugas, anda boleh mematikannya melalui kaedah berikut. Kaedah 1: Tutup melalui menu tetapan Klik menu mula dan pilih ikon "Tetapan" (ikon berbentuk gear). Dalam tetingkap tetapan, pilih pilihan "Peribadikan". Dalam menu di sebelah kiri tetingkap pemperibadian, pilih Bar Tugas. Di sebelah kanan tetingkap tetapan bar tugas, cari kawasan "Ikon Sistem" dan klik "Tunjukkan atau sembunyikan ikon sistem pada bar tugas.

See all articles