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递归列出所有文件和目录的代码
Sep 10 PHP
PHP源代码数组统计count分析
Aug 02 PHP
深入PHP curl参数的详解
Jun 17 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
PHP内核探索:变量概述
Jan 30 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
PHP抓取及分析网页的方法详解
Apr 26 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
PHP Trait功能与用法实例分析
Jun 03 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
Aug 06 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
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
新浪的图片新闻效果
2007/01/13 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
JavaScript实现省市区三级联动
2020/02/13 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
python多进程并行代码实例
2019/09/30 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
大学生考试作弊检讨书
2014/09/21 职场文书
父亲去世追悼词
2015/06/23 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫