最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php實現(xiàn)的一個很好用HTML解析器類可用于采集數據

 更新時間:2013年09月23日 17:24:33   作者:  
下面就是這個 HTML解析類及用法,下面的功能是采集www.opendir.cn這個網站的百度收錄數據,需要的朋友可以測試下
復制代碼 代碼如下:

<?php  
 $oldSetting = libxml_use_internal_errors( true );   
libxml_clear_errors();  
/**
 * 
 * -+-----------------------------------
 * |PHP5 Framework - 2011
 * |Web Site: www.iblue.cc
 * |E-mail: mejinke@gmail.com
 * |Date: 2012-10-12
 * -+-----------------------------------
 * 
 * @desc HTML解析器
 * @author jingke
 */   
class XF_HtmlDom  
{  
    private $_xpath = null;  
    private $_nodePath = '';  

    public function __construct($xpath = null, $nodePath = '')  
    {  
        $this->_xpath = $xpath;  
        $this->_nodePath = $nodePath;  
    }  

    public function loadHtml($url)  
    {  
        ini_set('user_agent', 'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 –Nexus');  
        $content = '';  
        if(strpos(strtolower($url), 'http')===false)  
        {  
            $content = file_get_contents($url);  
        }  
        else 
        {  
            $ch = curl_init();   
            $user_agent = "Baiduspider+(+http://www.baidu.com/search/spider.htm)";  
            $user_agent1='Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0';  
            curl_setopt($ch, CURLOPT_URL, $url);   
            curl_setopt($ch, CURLOPT_HEADER, false);   
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
            curl_setopt($ch, CURLOPT_REFERER, $url);  
            curl_setopt($ch, CURLOPT_USERAGENT, $user_agent1);  
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);  
            $content =curl_exec($ch);   
            curl_close($ch);  
        }  

        $html = new DOMDocument();   
        $html->loadHtml($content);   
        $this->_xpath = new DOMXPath( $html );   
        //return $this; 

    }  

    public function find($query, $index = null)  
    {  
        if($this->_nodePath == '')  
            $this->_nodePath = '//'; 
        else 
            $this->_nodePath .= '/';  

        $nodes = $this->_xpath->query($this->_nodePath.$query);  
        //echo $nodes->item(0)->getNodePath();exit; 

          
        if ($index == null && !is_numeric($index))   
        {   
            $tmp = array();  
            foreach ($nodes as $node)   
            {  
                $tmp[] = new XF_HtmlDom($this->_xpath, $node->getNodePath());  
            }  
            return $tmp;  
        }  
        return new XF_HtmlDom($this->_xpath,$this->_xpath->query($this->_nodePath.$query)->item($index)->getNodePath());  
    }  

    /**
     * 獲取內容
     */ 
    public function text()  
    {  
        if ($this->_nodePath != '' && $this->_xpath != null )   
            return $this->_xpath->query($this->_nodePath)->item(0)->textContent;  
        else 
            return false;  
    }  

    /**
     * 獲取屬性值
     */ 
    public function getAttribute($name)  
    {  
        if ($this->_nodePath != '' && $this->_xpath != null )   
            return $this->_xpath->query($this->_nodePath)->item(0)->getAttribute($name);  
        else 
            return false;  
    }  

    public function __get($name)  
    {  
        if($name == 'innertext')  
            return $this->text();  
        else 
            return $this->getAttribute($name);  
    }    
}    
$xp = new xf_HtmlDom();  
$xp->loadHtml('http://www.aizhan.com/siteall/www.opendir.cn/'); 
$rows = $xp->find("td[@id='baidu']/a", 0)->innertext;  
print_r($rows); 

相關文章

  • 淺析PHP7新功能及語法變化總結

    淺析PHP7新功能及語法變化總結

    這篇文章主要介紹了淺析PHP7新功能及語法變化總結的相關資料,需要的朋友可以參考下
    2016-06-06
  • Laravel?Eloquent的九個實用特性詳解

    Laravel?Eloquent的九個實用特性詳解

    這篇文章主要為大家介紹了LaravelEloquent的九個實用特性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • ThinkPHP5集成JS-SDK實現(xiàn)微信自定義分享功能

    ThinkPHP5集成JS-SDK實現(xiàn)微信自定義分享功能

    這篇文章主要介紹了ThinkPHP5集成JS-SDK實現(xiàn)微信自定義分享功能的相關資料,需要的朋友可以參考下
    2023-03-03
  • PHP 5.6.11中CURL模塊問題的解決方法

    PHP 5.6.11中CURL模塊問題的解決方法

    這篇文章主要介紹了PHP 5.6.11中CURL模塊問題的解決方法的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • PHP ajax+jQuery 實現(xiàn)批量刪除功能實例代碼小結

    PHP ajax+jQuery 實現(xiàn)批量刪除功能實例代碼小結

    這篇文章主要介紹了PHP ajax+jQuery 實現(xiàn)批量刪除功能實例代碼小結,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • 微信公眾平臺開發(fā)之配置與請求

    微信公眾平臺開發(fā)之配置與請求

    微信公眾平臺是騰訊公司在微信的基礎上新增的功能模塊,通過這一平臺,個人和企業(yè)都可以打造一個微信的公眾號,并實現(xiàn)和特定群體的文字、圖片、語音的全方位溝通、互動。本文給大家介紹微信公眾平臺開發(fā)之配置與請求,需要的朋友可以參考下
    2015-08-08
  • thinkphp 框架數據庫切換實現(xiàn)方法分析

    thinkphp 框架數據庫切換實現(xiàn)方法分析

    這篇文章主要介紹了thinkphp 框架數據庫切換實現(xiàn)方法,結合實例形式分析了thinkphp 框架數據庫切換實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2020-05-05
  • ThinkPhP5整合微信小程序訂閱消息實用代碼

    ThinkPhP5整合微信小程序訂閱消息實用代碼

    記錄一下開發(fā)小程序消息推送的實例,配合后端tp推送,要使用微信訂閱通知功能,需要用戶首先在小程序點擊訂閱后,后臺方可推送相關訂閱通知模板,否則無法直接推送
    2023-08-08
  • 淺談Laravel模板實體轉義帶來的坑

    淺談Laravel模板實體轉義帶來的坑

    今天小編就為大家分享一篇淺談Laravel模板實體轉義帶來的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 使用php操作xml教程

    使用php操作xml教程

    這篇文章主要介紹了使用php操作xml教程,本篇文章通過簡要的案例和文檔描述,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07

最新評論

南川市| 邻水| 益阳市| 墨玉县| 巫溪县| 广灵县| 绩溪县| 合山市| 深水埗区| 宁津县| 错那县| 化隆| 积石山| 凌海市| 长白| 靖远县| 安图县| 黄骅市| 白水县| 治多县| 小金县| 仁怀市| 宁阳县| 普格县| 福清市| 博湖县| 荔浦县| 乌拉特前旗| 三台县| 德清县| 乐至县| 郓城县| 金秀| 儋州市| 娱乐| 松滋市| 西吉县| 长岛县| 山阳县| 福安市| 海城市|