使用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 相关文章推荐
QueryPath PHP 中的jQuery
Apr 11 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
php后台如何避免用户直接进入方法实例
Oct 15 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
php恢复数组的key为数字序列的方法
Apr 28 PHP
PHP设计模式之适配器模式代码实例
May 11 PHP
PHP如何将log信息写入服务器中的log文件
Jul 29 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
PHP里的$_GET数组介绍
Mar 22 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
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
老生常谈javascript中逻辑运算符&&和||的返回值问题
2017/04/13 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
selenium+python环境配置教程详解
2019/05/28 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Hotels.com印度:酒店预订
2019/05/11 全球购物
一份报关员的职业规划范文
2014/01/08 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android