龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

网页抓取 一个php递归抓取网页的类

时间:2014-06-21 15:33来源:网络整理 作者:网络 点击:
分享到:
一个php递归抓取网页的类 [代码片段(32行)]
<?php
class crawler{
    private $_depth=5;
    private $_urls=array();

    function extract_links($url)
    {
        if(!$this->_started){
            $this->_started=1;
            $curr_depth=0;
        }else{
            $curr_depth++;
        }
        if($curr_depth<$this->_depth)
        {
            $data=file_get_contents($url);
            if(preg_match_all('/((?:http|https)://(?:www.)*(?:[a-zA-Z0-9_-]{1,15}.+[a-zA-Z0-9_]{1,}){1,}(?:[a-zA-Z0-9_/.-?&:%,!;]*))/',$data,$urls12))
            {
                foreach($urls12[0] as $k=>$v){
                    $check=get_headers($v,1);
                    if(strstr($v,$url) && $check[0]=='HTTP/1.1 200 OK' && !array_search($v,$this->_urls) && $curr_depth<$this->_depth){
                        $this->_urls[]=$v;
                        $this->extract_links($v);
                    }
                }
            }
        }
        return $this->_urls;
    }
}
?>
精彩图集

赞助商链接