加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 05:03:02 所属栏目: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)   ***/
?>

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读