使用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的十大要点(上)
Feb 04 PHP
PHP命名空间(Namespace)的使用详解
May 04 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
PHP入门之常量简介和系统常量
May 12 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
php实现MySQL数据库备份与还原类实例
Dec 09 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
php 流程控制switch的简单实例
Jun 07 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
laravel 实现根据字段不同值做不同查询
Oct 23 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 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生成缩略图的类代码
2008/10/02 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
python实现弹跳小球
2019/05/13 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
中式婚礼主持词
2014/03/13 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
Java spring定时任务详解
2021/10/05 Java/Android