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


Posted in PHP onAugust 25, 2014

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

利用Firebug的网络工具                                                              

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

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

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

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 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
几个有用的php字符串过滤,转换函数代码
May 01 PHP
php curl post 时出现的问题解决
Jan 30 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
php编程每天必学之表单验证
Mar 01 PHP
php文件上传的两种实现方法
Apr 04 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
PHP实现文件上传功能实例代码
May 18 PHP
详解php伪造Referer请求反盗链资源
Jan 24 PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 #PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 #PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 #PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 #PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 #PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 #PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
Aug 23 #PHP
You might like
php中转义mysql语句的实现代码
2011/06/24 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
vue+canvas实现移动端手写签名
2020/05/21 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
python模块smtplib学习
2018/05/22 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
培训讲师邀请函
2014/01/10 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
服装采购员岗位职责
2014/03/15 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
党风廉正建设责任书
2015/01/29 职场文书
美容院管理规章制度
2015/08/05 职场文书