使用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中常用编辑器推荐
Jan 02 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
基于initPHP的框架介绍
Apr 18 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
php+mysql数据库查询实例
Jan 21 PHP
php强制更新图片缓存的方法
Feb 11 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 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学习笔记之面向对象
2014/11/08 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
微信小程序日历效果
2018/12/29 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python常用库推荐
2016/12/04 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
pygame实现五子棋游戏
2019/10/29 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
八一建军节营销活动方案
2014/08/31 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
十七岁的单车观后感
2015/06/12 职场文书
MySQL数据库简介与基本操作
2022/05/30 MySQL