我要抓取网页:http://www.pm2d5.com/City/xg_wangjiao.html网页的表格里PM2.5的具体数据,
有没有什么高效点的方法?谢谢。。

解决方案 »

  1.   

    高效点的? 时间大多都是耗在网络传输上了,php就那三两种方法curl, fopen,也没多大差别呀
      

  2.   

    我这属于笨方法,无奈我的正则实在太烂
    // $html 是你要抓取的www.pm2d5.com/City/xg_wangjiao.html内容,这部分你自己写吧
    $pattern =  "/<td align=center bgcolor=\"#DCEAF3\">[\s\S]+?<\/td>/i";
    preg_match_all($pattern, $html, $tdTag);
    // var_dump($tdTag);// 要消除的匹配结果中的HTML标签
    $deleteStrHeader = '<td align=center bgcolor="#DCEAF3"><font face="細明體 ,  新細明體 , Taipei, Arial" size="3">';
    $deleteStrFooter = '</font></td>';$pmvalue = array();foreach($tdTag[0] as $key=>$value)
    {       
            // 当遍历到pm2.5那列时
            if( ($key+1) % 6 === 0)
            {
                // 消除头尾HTML标签
                $noHeaderStr = str_replace($deleteStrHeader, '', $value);
                $cleanStr = str_replace($deleteStrFooter, '', $noHeaderStr);
                // 转换为浮点型
                $pmvalue[] = (float)trim($cleanStr);   
            }
    }
    var_dump($pmvalue);