ITPub博客

首页 > 应用开发 > IT综合 > php实现递归抓取

php实现递归抓取

原创 IT综合 作者:longmaoheyezhu 时间:2015-04-03 14:14:25 0 删除 编辑

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);
     }//codego.net
    }
   }
  }
  return $this->_urls;
 }
} 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29973590/viewspace-1485210/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-10-23

  • 博文量
    8
  • 访问量
    19691