使用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 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
php发送get、post请求的6种方法简明总结
Jul 08 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
PHP文件缓存类示例分享
Jan 30 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
中国收音机工业发展史
2021/03/02 无线电
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
Use Word to Search for Files
2007/06/15 Javascript
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
python 异常处理总结
2016/10/18 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
金蝶的一道SQL笔试题
2012/12/18 面试题
2015年七夕爱情寄语
2015/03/24 职场文书
闪闪的红星观后感
2015/06/08 职场文书
安全教育培训心得体会
2016/01/15 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python