PHP curl 抓取AJAX异步内容示例

   2015-09-07 0
核心提示:抓ajax异步内容的页面和抓普通的页面区别不大。ajax只不过是做了一次异步的http请求,下面的示例,大家可以参考下

其实抓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);
 
标签: curl AJAX 异步
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • php中file_get_contents与curl的区别 php get f
    做微信开发的时候,项目中需要用PHP去请求微信相关接口。刚开始使用的是file_get_contents这个函数,后来听朋友说最好用curl。自己尝试了下,也能成功请求微信的接口。这两个有什么区别呢?抱着好奇心查阅了相关资料后,才知道他们之间确实有很大的不同。1.fo
    02-09
  • rvm 安装ruby环境报错curl: (35) error:1409441
    很可能是rvm仓库版本过低,运行以下命令:rvm get head
    02-09
  • mac安装dart报错curl: (35) LibreSSL SSL_conne
    mac安装dart报错curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to storage.googleapis.com:443 安装brew:控制台操作:1.安装brew/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"2.安装dart-l
    02-09
  • PHP curl爬取数据 加入cookie值
    public function get_cookie(){header("Content-type:text/html;Charset=utf8");$ch =curl_init();curl_setopt($ch,CURLOPT_URL,'爬取网址');$header = array();curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_HEADER,true);curl_se
    02-09
  • php编译参数注解--不明白许多参数的作用 慎用
    在Linux下安装PHP,源代码方式安装,总需要配置很多参数。这里列出常用配置参数,并详细用中文解释说明了。给大家一些参考编译PHP的时候慎用 –with-curlwrappers参数 ./configure--prefix=/usr/local/PHP                         
    02-09
  • PHP CURLFile函数模拟实现文件上传示例详解
    目录一、CURLFile介绍二、使用示例1、一个单独的函数定义2、模拟php curl向远程服务器上传文件3、实测可用综合示例小结一、CURLFile介绍CURLFile::__construct(PHP 5 = 5.5.0, PHP 7)CURLFile::__construct – curl_file_create — 创建 CURLFile 对象说明面
  • 利用php curl暴力破解urp账号密码
    利用php curl暴力破解urp账号密码
    懒得维护个人博客,固整理迁移至此。发布时间 2014-10-30 本文的方法由于漏洞已修复,已无法实现。背景 某学校的综合教务系统使用北京清元优软科技有限公司的(如图1),最近乌云爆出存在提升权限的漏洞1。内联页面中的某个管理员菜单没有审核权限,导致其他
    02-05 curlPHP
  • 在php中使用curl多线程下载图片
    在php中使用curl多线程下载图片
    遇到一个需求:要下载这个网站 http://www.laredoute.com/ 上面的商品图片到本地。 分析了一下,这个网站是一个国外的站点,受cdn节点的影响,在国内打开的速度比较慢。另一方面,要下载的商品图片较大,单张图片的大小有超过200kb的。现在的需求是,要在短时
  • PHP 中的 curl 函数发送 Post 请求的注意点
    昨天,遇到了一个需求,用户点击了某个按钮以后,后台发起一个post请求到我这里,我接受传递过来的数据。一开始同事是用公司框架公共封装的http_request()方法进行发送的,代码如下:public function http_request( $url, $post = '', $timeout = 5 ){if( empty
    11-10 curlPHP
  • PHP5 升级到PHP7时curl注意事项
    (从大量的CLOSE_WAIT发现的问题)脚本:?php$url = $argv[1];$mm = array();function curl($url) { global $mm; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); #curl_setopt($ch, CURLOPT_HTTPHEADER, array("Connection: close")); curl_exec($
    11-10 curlPHP7
点击排行