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

内容摘要
这篇文章主要为大家详细介绍了php 利用递归抓取网页的类示例,具有一定的参考价值,可以用来参考一下。

对一个php递归抓取网页的类对此感兴趣的朋友,看看idc笔记做的技术笔记!
文章正文

这篇文章主要为大家详细介绍了php 利用递归抓取网页的类示例,具有一定的参考价值,可以用来参考一下。

对一个php递归抓取网页的类对此感兴趣的朋友,看看idc笔记做的技术笔记!

<?php
/**
 * 一个php递归抓取网页的类
 *
 * @param 
 * @author php教程 www.idcnote.com
 **/
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;
 }
}
        
/***   来自php教程(www.idcnote.com)   ***/
?>

注:关于php 利用递归抓取网页的类示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!