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 MSSQL 存储过程的方法
Dec 24 PHP
一个PHP数组应该有多大的分析
Jul 30 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
Jun 17 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
浅谈laravel aliases别名的原理
Oct 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中memcache 基本操作实例
2015/05/17 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
商务英语专业应届毕业生求职信
2013/10/28 职场文书
审计主管岗位职责
2014/01/31 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
出纳岗位职责
2015/01/31 职场文书
出纳试用期自我评价
2015/03/10 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书