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 28 PHP
php fckeditor 调用的函数
Jun 21 PHP
php 变量未定义等错误的解决方法
Jan 12 PHP
PHP中$_SERVER的详细参数与说明介绍
Oct 26 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php数组添加与删除单元的常用函数实例分析
Feb 16 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 PHP
PHP实现批量修改文件名的方法示例
Sep 18 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 - Html Transfer Code
2006/10/09 PHP
php 无限级缓存的类的扩展
2009/03/16 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
php生成略缩图代码
2012/07/16 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
Extjs学习笔记之七 布局
2010/01/08 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
Python中使用item()方法遍历字典的例子
2014/08/26 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
幼儿教师考核制度
2014/01/25 职场文书
学校课外活动总结
2014/05/08 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
邀请书格式范文
2015/02/02 职场文书
2015大学生求职信范文
2015/03/20 职场文书
KTV员工管理制度
2015/08/06 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android