HOME 生活记录运维/编程
作者/来源: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>
 * 
 */
?>
分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com