使用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 相关文章推荐
php正则
Jul 07 PHP
关于PHP中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
php删除数组元素示例分享
Feb 17 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
教你在header中隐藏php的版本信息
Aug 10 PHP
WAF的正确bypass
Jan 05 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 PHP
php框架知识点的整理和补充
Mar 01 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
PHP实现多图片上传类实例
2014/07/26 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
Javascript string 扩展库代码
2010/04/09 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python制作简易注册登录系统
2016/12/15 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
python next()和iter()函数原理解析
2020/02/07 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
运动会邀请函范文
2014/01/31 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
一年级小学生评语大全
2014/12/25 职场文书
大学教师个人总结
2015/02/10 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server