使用php方法curl抓取AJAX异步内容思路分析及代码分享

 更新时间:2014年08月25日 11:17:48   投稿:hebedich  
怎样抓取AJAX网站的内容?这是一个热门的问题,也是一个棘手的问题。但实际上呢,抓取ajax异步内容的页面和抓普通的页面区别不大。ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即可

其实抓ajax异步内容的页面和抓普通的页面区别不大。ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即可。

利用Firebug的网络工具                                                              

如果抓去的是页面,则内容中没有显示的数据,是一堆JS代码。

Code                                                                                   

$cookie_file=tempnam('./temp','cookie');
$ch = curl_init();
$url1 = "http://www.cdut.edu.cn/default.html";
curl_setopt($ch,CURLOPT_URL,$url1);
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_ENCODING ,'gzip'); //加入gzip解析
//设置连接结束后保存cookie信息的文件
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
$content=curl_exec($ch);

curl_close($ch);

$ch3 = curl_init();
$url3 = "http://www.cdut.edu.cn/xww/dwr/call/plaincall/portalAjax.getNewsXml.dwr";
$curlPost = "callCount=1&page=/xww/type/1000020118.html&httpSessionId=12A9B726E6A2D4D3B09DE7952B2F282C&scriptSessionId=295315B4B4141B09DA888D3A3ADB8FAA658&c0-scriptName=portalAjax&c0-methodName=getNewsXml&c0-id=0&c0-param0=string:10000201&c0-param1=string:1000020118&c0-param2=string:news_&c0-param3=number:5969&c0-param4=number:1&c0-param5=null:null&c0-param6=null:null&batchId=0";
curl_setopt($ch3,CURLOPT_URL,$url3);
curl_setopt($ch3,CURLOPT_POST,1);
curl_setopt($ch3,CURLOPT_POSTFIELDS,$curlPost);

//设置连接结束后保存cookie信息的文件
curl_setopt($ch3,CURLOPT_COOKIEFILE,$cookie_file); 
$content1=curl_exec($ch3);
curl_close($ch3);

相关文章

  • PHP面向对象教程之自定义类

    PHP面向对象教程之自定义类

    所谓面向对象就是什么时候什么东西做什么,我们设计类的时候需要想的就是怎么做的内容,那么怎么样的一个类才算是符合OOP的思想呢,答案是:这个类写好之后,在使用的过程中,能准确的代表一个事物,在书写的时候代码要和思维描述一致,即这个东西做什么。
    2014-06-06
  • Laravel 自带的Auth验证登录方法

    Laravel 自带的Auth验证登录方法

    今天小编就为大家分享一篇Laravel 自带的Auth验证登录方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • Thinkphp开发--集成极光推送

    Thinkphp开发--集成极光推送

    极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业、高效的移动消息推送服务。本文讲述如何在将极光推送合到ThinkPHP框架中,
    2017-09-09
  • php封装好的人民币数值转中文大写类

    php封装好的人民币数值转中文大写类

    这篇文章主要给大家分享了几个php实现的人民币数值转中文大写的代码,非常的全面,有需要的小伙伴可以查看下
    2015-12-12
  • php发送短信验证码完成注册功能

    php发送短信验证码完成注册功能

    这篇文章主要介绍了php发送短信验证码完成注册功能的详细步骤,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • PHP处理会话函数大总结

    PHP处理会话函数大总结

    在PHP开发中,比起Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,PHP处理会话函数包括:session_start、session_register、session_is_registered、session_unregister、Session_destroy等等,这里详细介绍下php处理会话函数
    2015-08-08
  • CodeIgniter常用知识点小结

    CodeIgniter常用知识点小结

    这篇文章主要介绍了CodeIgniter常用知识点,包括跳转、常量定义、语言设置及支持get方法传参等技巧,需要的朋友可以参考下
    2016-05-05
  • ThinkPHP标签制作教程

    ThinkPHP标签制作教程

    这篇文章主要介绍了ThinkPHP标签制作方法,需要的朋友可以参考下
    2014-07-07
  • PHP运行环境配置与开发环境的配置(图文教程)

    PHP运行环境配置与开发环境的配置(图文教程)

    本篇文章是对PHP运行环境配置与开发环境的配置进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php使用正则表达式获取字符串中的URL

    php使用正则表达式获取字符串中的URL

    客户端传过来一段字符串,需要从字符串中匹配出所有的url,php该如何实现呢?本文章向大家介绍php如何获取字符串中的URL(网址链接),主要使用到php正则表达式函数preg_match_all,具体实现方法请看下文
    2016-12-12

最新评论