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 Smarty生成EXCEL文档的代码
Aug 23 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 21 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
smarty高级特性之对象的使用方法
Dec 25 PHP
PHP生成(支持多模板)二维码海报代码
Apr 30 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
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中使用与Perl兼容的正则表达式
2006/11/26 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
python切换hosts文件代码示例
2013/12/31 Python
用Python进行TCP网络编程的教程
2015/04/29 Python
用Python写冒泡排序代码
2016/04/12 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
简单了解python中的与或非运算
2019/09/18 Python
python扫描线填充算法详解
2020/02/19 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
巴西本土电商平台:Americanas
2020/06/21 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
导游实习生自荐书
2014/01/28 职场文书
思想品德自我评价
2014/02/04 职场文书
生产操作工岗位职责
2014/09/16 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
银行培训心得体会范文
2016/01/09 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL