使用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的宝库目录--PEAR
Oct 09 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
php以post形式发送xml的方法
Nov 04 PHP
php单例模式示例分享
Feb 12 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
Laravel 模型关联基础教程详解
Sep 17 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 header示例代码(推荐)
2010/09/08 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
PHP开发实现快递查询功能详解
2019/04/08 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
jquery 问答知识整理
2010/02/11 Javascript
关于js类的定义
2011/06/28 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
js选项卡的制作方法
2017/01/23 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
简单的python后台管理程序
2017/04/13 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
预备党员入党感言
2015/08/01 职场文书
2016新年问候语大全
2015/11/11 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python