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


Posted in PHP onApril 03, 2015

本文实例讲述了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 相关文章推荐
PHP初学入门
Nov 19 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
php中chdir()函数用法实例
Nov 13 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
php中namespace use用法实例分析
Jan 22 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
php metaphone()函数的定义和用法
May 15 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
PHP实现git部署的方法教程
Dec 19 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
php调整服务器时间的方法
Apr 03 #PHP
php实现图片转换成ASCII码的方法
Apr 03 #PHP
php解析字符串里所有URL地址的方法
Apr 03 #PHP
php对文件进行hash运算的方法
Apr 03 #PHP
php计算给定时间之前的函数用法实例
Apr 03 #PHP
php实现的mongodb操作类实例
Apr 03 #PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 #PHP
You might like
PHP安装攻略:常见问题解答(一)
2006/10/09 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
iframe子父页面调用js函数示例
2013/11/07 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
理解javascript模块化
2016/03/28 Javascript
bootstrap table实例详解
2017/01/06 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
Element InputNumber计数器的使用方法
2020/07/27 Javascript
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
Python深度优先算法生成迷宫
2018/01/22 Python
如何基于Python创建目录文件夹
2019/12/31 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
DTD的含义以及作用
2014/01/26 面试题
音乐系毕业生自荐信
2013/10/27 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
植树节活动总结
2014/04/30 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
php+laravel 扫码二维码签到功能
2021/05/15 PHP
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers