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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
小偷PHP+Html+缓存
Nov 25 PHP
php中变量及部分适用方法
Mar 27 PHP
PHP parse_url 一个好用的函数
Oct 03 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
PHP与以太坊交互详解
Aug 24 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 smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
PHP 实现重载
2021/03/09 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
python实现大文件分割与合并
2019/07/22 Python
python中的unittest框架实例详解
2021/02/05 Python
阿里旅行:飞猪
2017/01/05 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
人力资源管理专业应届生求职信
2013/09/28 职场文书
个人优缺点自我评价
2014/01/27 职场文书
素质拓展感言
2014/01/29 职场文书
大学学风建设方案
2014/05/04 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
党支部鉴定意见
2015/06/02 职场文书
北京爱情故事观后感
2015/06/12 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
教你怎么用Python操作MySql数据库
2021/05/31 Python