php 利用递归抓取网页的类示例

前端之家收集整理的这篇文章主要介绍了php 利用递归抓取网页的类示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对一个PHP递归抓取网页的类感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

<?PHP
/**
 * 一个PHP递归抓取网页的类
 *
 * @param 
 * @author 编程之家 jb51.cc jb51.cc
 **/
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;
 }
}
        
/***   来自编程之家 jb51.cc(jb51.cc)   ***/
?>

猜你在找的PHP相关文章