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
php学习笔记之 函数声明(二)
Jun 09 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
Jun 13 PHP
php集成环境xampp中apache无法启动问题解决方案
Nov 18 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
Symfony2创建页面实例详解
Mar 18 PHP
学习PHP session的传递方式
Jun 15 PHP
php生成图片缩略图功能示例
Feb 22 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
phpstorm激活码2020附使用详细教程
Sep 25 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
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
关于php循环跳出的问题
2013/07/01 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python计算N天之后日期的方法
2015/03/31 Python
python九九乘法表的实例
2017/09/26 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
Python中 map()函数的用法详解
2018/07/10 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
详解python如何引用包package
2020/06/07 Python
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
博士生导师推荐信
2014/07/08 职场文书
县委务虚会发言材料
2014/10/20 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB