使用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 相关文章推荐
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
php阻止页面后退的方法分享
Feb 17 PHP
如何使用php实现评委评分器
Jul 31 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
PDO::quote讲解
Jan 29 PHP
Yii框架引入coreseek分页功能示例
Feb 08 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
将PHP作为Shell脚本语言使用
2006/10/09 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
php短网址和数字之间相互转换的方法
2015/03/13 PHP
JavaScript 学习技巧
2010/02/17 Javascript
JavaScript prototype属性使用说明
2010/05/13 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
node.js 发布订阅模式的实例
2017/09/10 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
python 瀑布线指标编写实例
2020/06/03 Python
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
如何开启linux的ssh服务
2015/02/14 面试题
如何客观的进行自我评价
2013/12/17 职场文书
销售部主管岗位职责
2013/12/18 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
护士求职信
2014/07/05 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
店长岗位职责
2015/02/11 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书