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中的字符串函数
Oct 09 PHP
如何实现给定日期的若干天以后的日期
Oct 09 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
PHP 遍历文件实现代码
May 04 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
Jun 18 PHP
深入PHP数据加密详解
Jun 18 PHP
php的一个简单加密解密代码
Jan 14 PHP
php中strtotime函数用法详解
Nov 15 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
php libevent 功能与使用方法详解
Mar 04 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 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伪静态页面函数附使用方法
2008/06/20 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
python进行两个表格对比的方法
2018/06/27 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python中的延迟绑定原理详解
2019/10/11 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
任命书格式
2014/06/05 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
世界遗产导游词
2015/02/13 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
nginx.conf配置文件结构小结
2022/04/08 Servers
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL