业务拓张过程中,经常要做一些报表汇总数据,有的平台设计得比较好,有提供查询导出功能,但是大多数平台没有这个功能。我们公司的业务小姐姐经常会跟我们抱怨说,太难了。
在征求业务部门同意后,我们拿到了相关的平台已经账号信息。
分析平台
经过分析了解到,大部分平台都是ajax,然后加页码,返回json串数据集。这里有个前提是需要登录的,我们又分析了这些平台的cookie和session,相关登录成功标志符都存在cookie里面,接下来就好办了
测试
在写之前我们做了个测试,用postman接口请求工具,模拟了几次请求,看看会不会响应这些数据,结果发现,这些平台都能响应。如果不能响应,我们就要去看平台是否还有其他验证方式,导致异常的。
编写脚本
首先我们写了一个CURL_POST方法,供代码调用。
注:下述所有代码均为演示,无实际意义,仅供参考
/***header头部报文数组*$data数据数组*$urlpost请求地址**/functioncurl_post($header,$data,$url){$o=;foreach($dataas$k=$v){$o.=$k=.urlencode($v).;}$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_POST,0);curl_setopt($ch,CURLOPT_POSTFIELDS,$o);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_HTTPHEADER,$header);$result=curl_exec($ch);curl_close($ch);if($result==NULL){return0;}return$result;}
调用方法很简单。
$url=请求地址写这里;$header=array(Content-Type:application/x-