PHP一个简单的无需刷新爬虫

 更新时间:2019年01月05日 14:50:01   作者:只是个宝宝   我要评论

今天小编就为大家分享一篇关于PHP一个简单的无需刷新爬虫,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

由于只是一个小示例,所以过程化简单写了,小菜随便参考,大神大可点解

<?php 
//设置最大执行时间
set_time_limit(0);
function getHtml($url){
  // 1. 初始化
   $ch = curl_init();
   // 2. 设置选项,包括URL
   curl_setopt($ch,CURLOPT_URL,$url);
   curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
   curl_setopt($ch,CURLOPT_HEADER,0);
   // 3. 执行并获取HTML文档内容
   $output = curl_exec($ch);
   if($output === FALSE ){
    $output = '';
   }
   // 4. 释放curl句柄
   curl_close($ch);
   return $output;
}
function getPageData($url){
  // 获取整个网页内容
  $html = getHtml($url);
  // 初步获取主块内容
  preg_match("/教程列表.*教程列表/s",$html,$body_html);
  // 返回数据
  $data = array();
  //判断是否存在要获取的内容
  if(count($body_html)){
    // 获取页面指定信息
    preg_match_all('/<a class="avatar".*user_id="(\S*)" href="(\S*)" rel="external nofollow" /',$body_html[0],$info_1);
    preg_match_all('/<a href="(.*)" rel="external nofollow" .*title="(.*)"/',$body_html[0],$info_2);
    $info = array_merge($info_1,$info_2);
    //组合的信息
    for($index=0; $index<count($info[0]); $index++){
      //以文章信息作为key存数组,以及覆盖旧数据
      $data[$info[4][$index]] = array(
              'user_id'  => $info[1][$index],
              'user_home' => $info[2][$index],
              'a_url'   => $info[4][$index],
              'a_title'  => $info[5][$index],
           );
    }
  }
  return $data;
}
header("Content-type: text/html; charset=utf-8"); 
echo '<pre>';
// 初始化数据
$page_no = 1;
$data_all = array();
// 分页获取数据
do{
  $url = 'http://www.thinkphp.cn/code/examples/p/' . $page_no;
  $data = getPageData($url);
  $data_all += $data;
  $page_no ++;
}while ($page_no <= 10); //当前只获取10页,如果要全部获取则把条件换成$data或!empty($data)
var_dump($data_all);
?>

接下的入表库当然就不写了,那些更小意思了~就此别过吧~

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 详解 PHP加密解密字符串函数附澳门葡京赌场网站

    详解 PHP加密解密字符串函数附澳门葡京赌场网站

    项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理
    2015-12-12
  • ajax实现无刷新分页(php)

    ajax实现无刷新分页(php)

    直接给出源代码,可自行分析,写的不好请留言指正,谢谢!
    2010-07-07
  • PHP Filter过滤器全面解析

    PHP Filter过滤器全面解析

    PHP 过滤器用于验证和过滤来自非安全来源的数据。本文给大家全面解析PHP Filter过滤器的相关知识,非常不错,感兴趣的朋友一起学习吧
    2016-08-08
  • ThinkPHP查询语句与关联查询用法实例

    ThinkPHP查询语句与关联查询用法实例

    这篇文章主要介绍了ThinkPHP查询语句与关联查询用法,以实例的形式常见的查询方法,包括数组作为查询条件及对象方式来查询等技巧,需要的朋友可以参考下
    2014-11-11
  • PHP 异步执行方法,模拟多线程的应用分析

    PHP 异步执行方法,模拟多线程的应用分析

    本篇文章是对PHP 异步执行方法,模拟多线程的应用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Zend Framework路由器用法实例详解

    Zend Framework路由器用法实例详解

    这篇文章主要介绍了Zend Framework路由器用法,结合实例形式分析了Zend Framework路由器的功能、定义与基本使用方法,需要的朋友可以参考下
    2016-12-12
  • iOS自定义提示弹出框实现类似UIAlertView的效果

    iOS自定义提示弹出框实现类似UIAlertView的效果

    最近在学习iOS开发,在牛刀小试的时候发现系统的UIAlertView有点不喜欢,然后就自己自定义了一个UIAlertView,基本上实现了系统的UIAlertView,可以根据项目的需求修改UIAlertView的颜色。有需要的朋友们可以参考借鉴,也可以多多指导,下面来一起看看吧。
    2016-11-11
  • 使用新浪微博API的OAuth认证发布微博实例

    使用新浪微博API的OAuth认证发布微博实例

    这篇文章主要介绍了使用新浪微博API的OAuth认证发布微博实例的相关资料,需要的朋友可以参考下
    2015-03-03
  • 一个简单的php MVC留言本实例代码(必看篇)

    一个简单的php MVC留言本实例代码(必看篇)

    下面小编就为大家带来一篇一个简单的php MVC留言本实例代码(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • laravel中的一些简单实用功能

    laravel中的一些简单实用功能

    这篇文章主要给大家介绍了关于laravel中一些简单实用功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11

最新评论