使用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脚本数据库功能详解(下)
Oct 09 PHP
模仿OSO的论坛(五)
Oct 09 PHP
php学习 字符串课件
Jun 15 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
PHP中的float类型使用说明
Jul 27 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
php实现图片上传、剪切功能
May 07 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 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
PDO防注入原理分析以及注意事项
2015/02/25 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
浅析JavaScript动画
2015/06/10 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
Python子类继承父类构造函数详解
2019/02/19 Python
pandas 对group进行聚合的例子
2019/12/27 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
蒂娜商店:Tiina the Store
2019/12/07 全球购物
《老王》教学反思
2014/02/23 职场文书
文明寄语大全
2014/04/11 职场文书
龙猫观后感
2015/06/09 职场文书
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript
JS中如何优雅的使用async await详解
2021/10/05 Javascript
关于Vue中的options选项
2022/03/22 Vue.js
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android