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 相关文章推荐
建立动态的WML站点(三)
Oct 09 PHP
五个PHP程序员工具
May 26 PHP
php GD绘制24小时柱状图
Jun 28 PHP
PHP字符串中特殊符号的过滤方法介绍
Feb 18 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
PHP查看SSL证书信息的方法
Sep 22 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 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连接MSsql server的五种方法总结
2018/03/04 PHP
详解JavaScript函数绑定
2013/08/18 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
js实现自定义路由
2017/02/04 Javascript
SVG描边动画
2017/02/23 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
JS实现json数组排序操作实例分析
2019/10/28 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
React实现todolist功能
2020/12/28 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
编写Python的web框架中的Model的教程
2015/04/29 Python
python线程池threadpool使用篇
2018/04/27 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
求职信范文怎么写
2014/01/29 职场文书
仲裁协议书
2014/09/26 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
SQL Server中使用表变量和临时表
2022/05/20 SQL Server