比如中通快递,他们公司都说没有这个webservice提供,而查询地址是需要输验证码的,那淘宝是用什么方式得到中通快递某个快递单号的物流信息呢???

解决方案 »

  1.   

    http://www.5ccl.info/ons/?176301-1.html
      

  2.   

    中通快递查询是不需要验证码的
    中通快递运单查询
    其它快递查询
    http://www.express8.cn/
      

  3.   

    http://www.zto.cn/billselect.aspx
    webbrower
    httpwebrequest试试
      

  4.   

    1.淘宝是采用直接调用各大物流公司接口的方式,(WebService,推测应该是)
    2.你也可以实用网页HttpRequest GET/POST的方式获取,前提是不能有图片验证码,如果有,就需要图片识别了.
      

  5.   

    我是从淘宝上面得到的一段代码,楼主好好的研究一下吧!<script type="text/javascript">
    (function(){
    var E = YAHOO.util.Event;
    E.on('logis:editMailNo', 'click', function(evt){
    E.stopEvent(evt);
    var target = E.getTarget(evt);
    target.parentNode.innerHTML = '<input id="mailNoValue" name="mailNo" type="text" class="express_code" value="2309016820"/><button id="logis:saveMailNo" class="small-btn">确定</button>&nbsp;&nbsp;<a href="http://service.taobao.com/support/146-937-968/help-1979.htm" target="_blank">例子</a>';
    }); E.on('logis:saveMailNo', 'click', function(evt){
    var mailNo = document.getElementById('mailNoValue').value;
    var countryId = document.getElementById('countryId').value;
          if(mailNo==''){
              alert("请输入运单号码!");
    E.stopEvent(evt);
      return false;
      }
    if(countryId > 700000){
    alert("该商品收货地址为港澳台或海外地区,为了保障您的权益,请您保留发货证明180天以上。");
    } document.getElementById('saveMailNo').submit();
    }); E.on('logis:cancelOrder', 'click', function(evt){
    E.stopEvent(evt);
    var target = E.getTarget(evt);
    if(!confirm('若货物已被物流公司取走,请勿取消订单;若取消订单,物流公司有可能收取相应的费用。订单取消后需重新发货,您要继续吗?')) {
    return;
    }
    document.getElementById('cancelOrderForm').submit();
    }); E.onDOMReady(function(){
         var D = YAHOO.util.Dom;
    var trigger = D.getElementsByClassName('logis:complaint-ems','a');
            var popupBox = document.getElementById('complaintEmsDiv'),
                newpopup = popupBox.cloneNode(true);
            newpopup.removeAttribute('id');
            document.body.appendChild(newpopup);
            TB.widget.SimplePopup.decorate(trigger,newpopup, {position: 'right'}); showDetailForAjax();
    });
    })(); function showDetailForAjax() {
    var Y = YAHOO.util,D = Y.Dom,E = Y.Event,C = Y.Connect,
    ul = D.get('J_ExList'),
    url = 'json_trace_query.do?source=orderDetailNew&orderId=2334755150&isFromHistory=false';
         if(!ul) return;
         var loading = {
         show:function() {
    ul.innerHTML = '';
         if(!D.get('J_Loading')) {
         var p = document.createElement('p');
         p.id = 'J_Loading';
         p.innerHTML = '<img src="http://pics.taobaocdn.com/bao/album/sys/loading_32x32.gif" style="vertical-align:middle;margin-right:10px" />正在读取物流信息...';
         D.insertAfter(p,ul);
         } else {
         D.setStyle('J_Loading','display','block');
         }
         },
         hide:function() {
         D.setStyle('J_Loading','display','none');
         }
         }
         loading.show();
         C.asyncRequest('POST',url,{
         success:function(req) {
    var ret = eval('(' + req.responseText + ')');
         var str = '';
         if(ret.traces) {
    if (0 == ret.traces.length) {
    //物流公司接口正确,但mailNo错误
    ul.innerHTML = '<li>没有查询到符合条件的运单<li>';
    } else {
    ret.traces.forEach(function(el,i) {
             str += '<li' + (i == (ret.traces.length -1) ? ' class="ex-highlight-o"' : '') + '>' + el.acceptTime + ' ' + el.acceptAddress + ' ' + el.re + '</li>';
             });
             ul.innerHTML = str;
    }
         } else if (ret.errorMsg) {
    if ('加载失败' == ret.errorMsg) {
    ul.innerHTML = '<li>加载失败,尝试<a href="#" onclick="showDetailForAjax()">再次请求</a><li>';
    }
    }
    loading.hide();
         },
         failure:function() {
         try {
    ul.innerHTML = '<li>加载失败,尝试<a href="#" onclick="showDetailForAjax()">再次请求</a><li>';
         loading.hide();
         } catch(x) {}
         },
    cache:false
         });
    }
    </script>