使用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+jQuery+Ajax简单实现页面异步刷新

    php+jQuery+Ajax简单实现页面异步刷新

    这篇文章主要为大家详细介绍了php+jQuery+Ajax简单实现页面异步刷新,,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例

    TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例

    这篇文章主要介绍了TP5(thinkPHP5)框架基于ajax与后台数据交互操作,结合实例形式分析了thinkPHP5前端基于jQuery的ajax数据提交及后台数据接收、处理相关操作技巧,需要的朋友可以参考下
    2018-09-09
  • PHP Header失效的原因分析及解决方法

    PHP Header失效的原因分析及解决方法

    下面小编就为大家带来一篇PHP Header失效的原因分析及解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 大家须知简单的php性能优化注意点

    大家须知简单的php性能优化注意点

    通过本文给大家介绍在什么情况下可能遇到性能问题,php性能问题的解决方向及优化点,对php性能优化注意点相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • php实现产品加入购物车功能(1)

    php实现产品加入购物车功能(1)

    这篇文章主要为大家详细介绍了php实现产品加入购物车功能,具有一定的参考价值,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 从零开始学YII2框架(一)通过Composer安装Yii2框架

    从零开始学YII2框架(一)通过Composer安装Yii2框架

    今天终于搞明白怎么安装Yii2了。对于我这种小白来说真是费尽周折。下面来介绍下如何安装Composer和如何使用Composer安装Yii2。
    2014-08-08
  • PHP递归算法的简单实例

    PHP递归算法的简单实例

    今天小编就为大家分享一篇关于PHP递归算法的简单实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • php使用ICQ网关发送手机短信

    php使用ICQ网关发送手机短信

    php发送手机短信实例代码。
    2013-10-10
  • php生成二维码

    php生成二维码

    随着科技的发展,二维码无处不在,特别是在智能手机时代二维码更活跃,下面小编通过两种方法给大家介绍利用php生成二维码,需要的朋友可以参考下
    2015-08-08
  • mac环境中使用brew安装php5.5.15

    mac环境中使用brew安装php5.5.15

    MAC本来就自带了 php,但是很多扩展没有安装,所以选择了重新安装php并升级到最新版,下面说说安装步骤,希望对大家有所帮助
    2014-08-08

最新评论