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 相关文章推荐
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
php如何调用webservice应用介绍
Nov 24 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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 json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
PHP多进程编程实例
2014/10/15 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
PHP查询分页的实现代码
2017/06/09 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
python实现画循环圆
2019/11/23 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
论文答辩开场白大全
2015/05/27 职场文书
冰雪公主观后感
2015/06/16 职场文书
《给予树》教学反思
2016/03/03 职场文书
入团申请书格式
2019/06/20 职场文书