使用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 Header用于页面跳转要注意的几个问题总结
Oct 03 PHP
PHP 字符串分割和比较
Oct 06 PHP
wamp下修改mysql访问密码的解决方法
May 07 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
php事务处理实例详解
Jul 11 PHP
php设置静态内容缓存时间的方法
Dec 01 PHP
php递归创建目录的方法
Feb 02 PHP
php实现通过ftp上传文件
Jun 19 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 PHP
PHP实现数组和对象的相互转换操作示例
Mar 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
深入探讨javascript函数式编程
2015/10/11 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
JavaScript实现五子棋小游戏
2020/10/26 Javascript
Python的Urllib库的基本使用教程
2015/04/30 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Django ModelForm操作及验证方式
2020/03/30 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
python实现画图工具
2020/08/27 Python
Python内置函数及功能简介汇总
2020/10/13 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
民间借贷协议书范本
2014/10/01 职场文书
召开会议通知范文
2015/04/15 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
机器人瓦力观后感
2015/06/12 职场文书
催款函范本大全
2015/06/24 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server