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 相关文章推荐
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 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获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
西安兵马俑导游词
2015/02/02 职场文书
党内外群众意见范文
2015/06/02 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
谢师宴家长致辞
2015/07/27 职场文书
学习委员竞选稿
2015/11/20 职场文书