PHP curl 抓取AJAX异步内容示例


Posted in PHP onSeptember 09, 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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
整理php防注入和XSS攻击通用过滤
Sep 13 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
Yii基于数组和对象的Model查询技巧实例详解
Dec 28 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
Jun 14 PHP
Laravel实现ORM带条件搜索分页
Oct 24 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 #PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 #PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 #PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 #PHP
PHP使用Mysql事务实例解析
Sep 08 #PHP
PHP闭包实例解析
Sep 08 #PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 #PHP
You might like
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
django1.8使用表单上传文件的实现方法
2016/11/04 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
员工廉洁自律承诺书
2014/05/26 职场文书
新员工入职欢迎词
2015/01/23 职场文书
统计工作个人总结
2015/03/03 职场文书
鲁冰花观后感
2015/06/10 职场文书
红色电影观后感
2015/06/18 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript
python代码实现备忘录案例讲解
2021/07/26 Python
python中 .npy文件的读写操作实例
2022/04/14 Python