使用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 相关文章推荐
图书管理程序(一)
Oct 09 PHP
PHP 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
php学习之简单计算器实现代码
Jun 09 PHP
组合算法的PHP解答方法
Feb 04 PHP
PHP URL路由类实例
Nov 12 PHP
php中require和require_once的区别说明
Feb 27 PHP
php实现水仙花数示例分享
Apr 03 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
跟我学Laravel之快速入门
Oct 15 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 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
一个图形显示IP的PHP程序代码
2007/10/19 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
python pygame模块编写飞机大战
2018/11/20 Python
python 调用有道api接口的方法
2019/01/03 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Python自动抢红包教程详解
2019/06/11 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
python和php学习哪个更有发展
2020/06/17 Python
Python自省及反射原理实例详解
2020/07/06 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
职高毕业生自我鉴定
2013/10/21 职场文书
法人代表授权委托书
2014/04/08 职场文书
解除劳动合同协议书
2014/09/17 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
如何在Python中创建二叉树
2021/03/30 Python