使用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 裁剪图片成固定大小代码方法
Sep 09 PHP
php常用Stream函数集介绍
Jun 24 PHP
一个显示效果非常不错的PHP错误、异常处理类
Mar 21 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
整理php防注入和XSS攻击通用过滤
Sep 13 PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 PHP
ThinkPHP中where()使用方法详解
Apr 19 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
May 19 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
PHP保留两位小数的几种方法
Jul 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP微信分享开发详解
2017/01/14 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
js创建数组的简单方法
2016/07/27 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
Python中处理时间的几种方法小结
2015/04/09 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
python读取文本中的坐标方法
2018/10/14 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
Python reversed函数及使用方法解析
2020/03/17 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
领导干部培训感言
2014/01/23 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
开学典礼感言
2014/02/16 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
大学开学计划书
2014/04/30 职场文书
教书育人演讲稿
2014/09/11 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js