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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
php cc攻击代码与防范方法
Oct 18 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
PHP.vs.JAVA
Apr 29 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 PHP
PHP实现简易图形计算器
Aug 28 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使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
js定时器实例分享
2016/12/20 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
python随机生成指定长度密码的方法
2015/04/04 Python
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python绘制中国大陆人口热力图
2018/11/07 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
HTML5进度条特效
2014/12/18 HTML / CSS
介绍一下gcc特性
2012/01/20 面试题
优秀毕业生求职信范文
2014/01/02 职场文书
书香校园活动方案
2014/02/28 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS