使用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中利用XML技术构造远程服务(下)
Oct 09 PHP
PHP 的几个配置文件函数
Dec 21 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
php session安全问题分析
Jun 24 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
浅析php数据类型转换
Jan 09 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
PHP类型约束用法示例
Sep 28 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
php中的钩子理解及应用实例分析
Aug 30 PHP
PHPstorm启用自动换行的方法详解(IDE)
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
初品cakephp 入门基础
2012/02/16 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
小程序中英文混合排序问题解决
2019/08/02 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
简单实现python爬虫功能
2015/12/31 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
岗位职责定义及内容
2013/11/08 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL
vue3获取当前路由地址
2022/02/18 Vue.js