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 相关文章推荐
多文件上传的例子
Oct 09 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 PHP
php+mysql数据库查询实例
Jan 21 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
laravel 解决crontab不执行的问题
Oct 22 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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可逆加密函数(分享)
2013/06/06 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
js prototype截取字符串函数
2010/04/01 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
python实现AdaBoost算法的示例
2020/10/03 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
耐克中国官方商城:Nike中国
2018/10/18 全球购物
美国批发供应商:Kole Imports
2019/04/10 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
员工自我鉴定
2013/10/09 职场文书
策划助理岗位职责
2013/11/18 职场文书
优秀应届生求职信
2014/06/16 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
结对共建协议书
2014/08/20 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python