当前位置:首页 > PHP教程 > php类库 > 列表

php实现递归抓取网页类实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-21 17:19:43 浏览: 评论:0 

这篇文章主要介绍了php实现递归抓取网页类,实例分析了php递归操作及网页抓取的技巧,非常具有实用价值,需要的朋友可以参考下。

本文实例讲述了php实现递归抓取网页类的方法,分享给大家供大家参考,具体如下:

  1. <?php 
  2. class crawler{ 
  3.  private $_depth=5; 
  4.  private $_urls=array(); 
  5.  function extract_links($url
  6.  { 
  7.   if(!$this->_started){ 
  8.    $this->_started=1; 
  9.    $curr_depth=0; 
  10.   }else
  11.    $curr_depth++; 
  12.   } 
  13.   if($curr_depth<$this->_depth) 
  14.   { 
  15.    $data=file_get_contents($url); 
  16.    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)) 
  17.    { 
  18.     foreach($urls12[0] as $k=>$v){ 
  19.      $check=get_headers($v,1); 
  20.      if(strstr($v,$url) && $check[0]=='HTTP/1.1 200 OK' && !array_search($v,$this->_urls) && $curr_depth<$this->_depth){ 
  21.       $this->_urls[]=$v
  22.       $this->extract_links($v); 
  23.      } 
  24.     } 
  25.    } 
  26.   } 
  27.   return $this->_urls; 
  28.  } 
  29. ?>

Tags: php递归抓取网页类

分享到: