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

5年以前  |  阅读数:838 次  |  编程语言:PHP 

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


    <?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;
     }
    }
    ?>

希望本文所述对大家的php程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例