作者/来源:yixinu.com
栏目:运维/编程
日期:2015-01-07 17:11:09
<?php /** * 通过抓取快递100网页数据 获取 快递单详细信息 * * 为什么不使用快递100的申请账号? * 第一:申请账号有访问限制 ; 第二:不想泄露个人信息; 第三:这样使用快捷方便 。 * @author 青竹丹枫 Kyle <316686606@qq.com> */ /** * 模拟IE浏览器 抓取网页 * @param type $from_url * @param type $url * @return type */ function gethtml($from_url,$url){ $ch = curl_init(); //设置 来路,这个很重要 ,表示这个访问 是从 $form_url 这个链接点过去的。 curl_setopt($ch,CURLOPT_REFERER,$from_url); //获取 的url地址 curl_setopt ($ch,CURLOPT_URL,$url); //设置 返回原生的(Raw)输出 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //发送POST请求 CURLOPT_CUSTOMREQUEST curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); //模拟浏览器发送报文 ,这里模拟 IE6 浏览器访问 curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"); $res = curl_exec($ch); curl_close ($ch); return $res; } /** * 根据快递单模糊搜索,找出有该快递单号的快递公司 * @param type $id 快递单号 * @return type 返回数组 */ function searchkuaidi($id){ $jsondata = gethtml("www.kuaidi100.com","http://www.kuaidi100.com/autonumber/auto?num=$id"); return json_decode($jsondata,true); } /** * * @param type $id 快递单号 * @param type $com 快递公司代码 * * 成功时返回 : Array ( [message] => ok [nu] => 7595512801 [companytype] => yuantong [ischeck] => 1 [com] => yuantong [updatetime] => 2015-01-07 17:04:45 [status] => 200 [condition] => F00 [codenumber] => 7595512801 [data] => Array ( [0] => Array ( [time] => 2014-12-23 14:52:01 [location] => [context] => 广东省云浮市罗定市公司 已签收 [ftime] => 2014-12-23 14:52:01 ) [1] => Array ( [time] => 2014-12-23 09:59:48 [location] => [context] => 广东省云浮市罗定市公司 派件中 [ftime] => 2014-12-23 09:59:48 ) [2] => Array ( [time] => 2014-12-22 17:27:54 [location] => [context] => 广东省云浮市罗定市公司 已收入 [ftime] => 2014-12-22 17:27:54 ) [3] => Array ( [time] => 2014-12-21 07:17:38 [location] => [context] => 广州转运中心公司 已发出 [ftime] => 2014-12-21 07:17:38 ) [4] => Array ( [time] => 2014-12-21 06:20:06 [location] => [context] => 广州转运中心公司 已拆包 [ftime] => 2014-12-21 06:20:06 ) [5] => Array ( [time] => 2014-12-21 01:52:14 [location] => [context] => 虎门转运中心公司 已打包 [ftime] => 2014-12-21 01:52:14 ) [6] => Array ( [time] => 2014-12-21 01:04:15 [location] => [context] => 虎门转运中心公司 已收入 [ftime] => 2014-12-21 01:04:15 ) [7] => Array ( [time] => 2014-12-20 23:39:42 [location] => [context] => 广东省中山市公司 已发出 [ftime] => 2014-12-20 23:39:42 ) [8] => Array ( [time] => 2014-12-20 23:27:22 [location] => [context] => 广东省中山市公司 已收入 [ftime] => 2014-12-20 23:27:22 ) [9] => Array ( [time] => 2014-12-20 20:37:27 [location] => [context] => 广东省中山市公司 已收件 [ftime] => 2014-12-20 20:37:27 ) ) [state] => 3 ) * 错误时返回 : Array ( [status] => 201 [message] => 快递公司参数异常:单号不存在或者已经过期 ) */ function getkuaidi($id,$com){ $data = gethtml("www.kuaidi100.com","http://www.kuaidi100.com/query?type=$com&postid=$id&id=&valicode="); return json_decode($data,true); } echo "<pre>"; //print_r(searchkuaidi("7595512801")); print_r(searchkuaidi("560031072312")); print_r(getkuaidi('7595512801','yuantong')); echo "</pre>"; /** <!--快递公司代码--> <select name="com"><option value="aae">AAE全球专递</option> <option value="auspost">澳大利亚邮政</option> <option value="aramex">Aramex</option> <option value="huitongkuaidi">百世汇通</option> <option value="youzhengguonei">包裹信件</option> <option value="bpost">比利时邮政</option> <option value="citylink">City-Link</option> <option value="coe">COE</option> <option value="dhl">DHL中国件</option> <option value="dhlen">DHL全球件</option> <option value="dhlde">DHL德国件</option> <option value="disifang">递四方</option> <option value="ems">EMS</option> <option value="emsguoji">EMS国际件</option> <option value="fedex">FedEx国际件</option> <option value="vancl">凡客配送</option> <option value="fanyukuaidi">凡宇快递</option> <option value="fedexcn">Fedex</option> <option value="fedexus">FedEx美国件</option> <option value="guotongkuaidi">国通快递</option> <option value="ganzhongnengda">能达速递</option> <option value="gongsuda">共速达</option> <option value="koreapost">韩国邮政</option> <option value="huaqikuaiyun">华企快运</option> <option value="jd">京东快递</option> <option value="jiajiwuliu">佳吉快运</option> <option value="canpost">加拿大邮政</option> <option value="jiayunmeiwuliu">加运美</option> <option value="jialidatong">嘉里大通</option> <option value="jinguangsudikuaijian">京广速递</option> <option value="kuayue">跨越速递</option> <option value="kuaijiesudi">快捷速递</option> <option value="kuaiyouda">四川快优达</option> <option value="minbangsudi">民邦速递</option> <option value="minghangkuaidi">民航快递</option> <option value="ocs">OCS</option> <option value="ontrac">OnTrac</option> <option value="quanfengkuaidi">全峰快递</option> <option value="quanritongkuaidi">全日通</option> <option value="quanyikuaidi">全一快递</option> <option value="quanchenkuaidi">全晨快递</option> <option value="quanjitong">全际通</option> <option value="japanposten">日本邮政</option> <option value="rufengda">如风达</option> <option value="swisspost">瑞士邮政</option> <option value="shentong">申通快递</option> <option value="shunfeng">顺丰速运</option> <option value="suer">速尔快递</option> <option value="shenganwuliu">圣安物流</option> <option value="shengfengwuliu">盛丰物流</option> <option value="shenghuiwuliu">盛辉物流</option> <option value="tiantian">天天快递</option> <option value="tnt">TNT</option> <option value="ups">UPS</option> <option value="usps">USPS</option> <option value="wanjiawuliu">万家物流</option> <option value="wanxiangwuliu">万象物流</option> <option value="hkpost">香港邮政</option> <option value="xinbangwuliu">新邦物流</option> <option value="xinfengwuliu">信丰物流</option> <option value="yuantong">圆通速递</option> <option value="yunda">韵达快递</option> <option value="youzhengguoji">邮政国际包裹</option> <option value="youshuwuliu">优速物流</option> <option value="yuanchengwuliu">远成物流</option> <option value="ytkd">运通中港快递</option> <option value="ztky">中铁物流</option> <option value="zhongtiewuliu">中铁快运</option> <option value="zhongyouwuliu">中邮物流</option> <option value="zhongtong">中通速递</option> <option value="zhaijisong">宅急送</option> <option value="zengyisudi">增益速递</option> </select> * */ ?>