PHP curl 抓取AJAX异步内容示例


Posted in PHP onSeptember 09, 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 相关文章推荐
phpMyAdmin 安装及问题总结
May 28 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
PHP积分兑换接口实例
Feb 09 PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
PHP发送AT指令实例代码
May 26 PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 PHP
postman的安装与使用方法(模拟Get和Post请求)
Aug 06 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
php时间戳转换代码详解
Aug 04 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 #PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 #PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 #PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 #PHP
PHP使用Mysql事务实例解析
Sep 08 #PHP
PHP闭包实例解析
Sep 08 #PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 #PHP
You might like
php结合curl实现多线程抓取
2015/07/09 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
laravel 获取某个查询的查询SQL语句方法
2019/10/12 PHP
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
Python列表和元组的定义与使用操作示例
2017/07/26 Python
基于python时间处理方法(详解)
2017/08/14 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
帕克纽约:PARKER NY
2018/12/09 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
西安众合通用.net笔试题
2013/03/18 面试题
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
护理工作个人总结
2015/03/03 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python