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生成EXCEL的东东
Oct 09 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
php定界符
Jun 19 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
php编写简单的文章发布程序
Jun 18 PHP
php实现网站留言板功能
Nov 04 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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实现Socket服务器的代码
2008/04/03 PHP
php中使用sftp教程
2015/03/30 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
快餐公司创业计划书
2014/04/29 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
热情服务标语
2014/10/07 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
三孔导游词
2015/02/05 职场文书
教师求职自荐信范文
2015/03/04 职场文书
2015年工程师工作总结
2015/04/30 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android