本篇内容介绍了“Python查询快递的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
首先,要考虑数据来源。这个可以用快递100的数据,打开快递100官网就可以输入单号查询快递信息。
当然,点一下查询按钮,会发送很多请求到服务器,请求快递信息。我们需要分析一下哪个请求链接是有用的。抓包分析可以用fiddler4,这里我就不写这个过程了。
经测试,得到请求链接是 http://www.kuaidi100.com/query?type=xxx&postid=xxx 。其中需要填写type和postid两个参数,分别是快递公司代码和快递单号。请求这个链接可以得到json数据。大概结构如下:
{ "message" : "ok", "nu" : "单号", "com" : "快递公司代码", "data":[ { "time":"2015-12-27 13:24:34", "context":"快递信息1", "ftime":"2015-12-27 13:24:34" }, { "time":"2015-12-27 13:24:34", "context":"快递信息2", "ftime":"2015-12-27 13:24:34" } ]}
这个json数据结构还是一目了然的那我们就可以动手了,源码如下:
# -*- coding: UTF-8 -*-# 特别声明,此源码仅参考研究使用。未经允许,请勿用于商业用途# By Haddy Yang, 2016-03-02import urllibimport jsondef getExpress(company,code): '''funcation: Get Express Infomation 2 args company: the express company code code: the express bill code ''' url='http://www.kuaidi100.com/query?type=%s&postid=%s' % (company,code) page=urllib.urlopen(url) #打开链接,请求快递数据 return page.read().decode('utf8')def showResult(jsonStr): '''Show the result''' jsonObj = json.loads(jsonStr) print u'当前状态:', jsonObj.get('message'),'\n' status=jsonObj.get('status') #获取状态代码(200是正常) if status=='200': for x in jsonObj.get('data'): print '%s %s' % (x.get('time'), x.get('context')) #可以用下面代码遍历出全面键值 #for key,value in x.items(): # print key,valueif __name__ == '__main__': #测试,顺丰代码:shunfeng jsonStr = getExpress('shunfeng','102290224058') showResult(jsonStr) raw_input()
快递公司名称 代码 快递公司名称 代码 快递公司名称 代码 A开头 急先达jixianda微特派weitepai澳大利亚邮政auspost晋越快递jinyuekuaidiX开头 AAEaae捷特快递jietekuaidi新邦物流xinbangwuliu安信达anxindakuaixi金大物流jindawuliu信丰物流xinfengwuliuB开头 嘉里大通jialidatong星晨急便xingchengjibian百世汇通huitongkuaidiK开头 鑫飞鸿xinhongyukuaidi百福东方baifudongfang快捷速递kuaijiesudi希伊艾斯ccesBHTbht康力物流kangliwuliu新蛋奥硕物流neweggozzo包裹/平邮/挂号youzhengguonei跨越物流kuayue香港邮政hkpost邦送物流bangsongwuliuL开头 Y开头 C开头 联昊通lianhaowuliu圆通速递yuantong希伊艾斯cces龙邦物流longbanwuliu韵达快运yunda传喜物流chuanxiwuliu蓝镖快递lanbiaokuaidi运通快递yuntongkuaidiD开头 乐捷递lejiedi邮政小包youzhengguonei大田物流datianwuliu联邦快递lianbangkuaidi邮政小包youzhengguoji德邦物流debangwuliu联邦快递lianbangkuaidien远成物流yuanchengwuliuDPEXdpex立即送lijisong亚风速递yafengsudiDHL-中国件dhl隆浪快递longlangkuaidi一邦速递yibangwuliuDHL-国际件dhlenM开头 优速物流youshuwuliuDHL-德国件dhlde门对门menduimen源伟丰快递yuanweifengD速快递dsukuaidi美国快递meiguokuaidi元智捷诚yuanzhijiecheng递四方disifang明亮物流mingliangwuliu越丰物流yuefengwuliuE开头 O开头 源安达yuanandaEMSemsOCSocs原飞航yuanfeihangwuliuEMS-国际件emsenonTracontrac一统飞鸿yitongfeihongE邮宝emsQ开头 Z开头 F开头 全晨快递quanchenkuaidi忠信达快递zhongxindaFedex-国际件fedex全际通quanjitong芝麻开门zhimakaimenFedex-中国件fedexcn全日通quanritongkuaidi银捷速递yinjiesudiFedex-美国件fedexus全一快递quanyikuaidi宅急送zhaijisong飞康达物流feikangda全峰快递quanfengkuaidi郑州建华zhengzhoujianhua飞快达feikuaida七天连锁sevendays中国东方coe凡客如风达rufengdaR开头 中通速递zhongtong风行天下fengxingtianxia如风达快递rufengda中铁物流zhongtiewuliu飞豹快递feibaokuaidiS开头 中铁快运ztkyG开头 山东海红haihongwangsong中邮物流zhongyouwuliu港中能达ganzhongnengda申通快递shentong中速快件zhongsukuaidi国通快递guotongkuaidi顺丰速递shunfeng中天万运zhongtianwanyun广东邮政guangdongyouzhengwuliu顺丰速递-国际shunfengen挂号信youzhengguonei三态速递santaisudi国内邮件youzhengguonei速尔物流suer国际邮件youzhengguoji盛辉物流shenghuiwuliuGLSgls盛丰物流shengfengwuliu共速达gongsuda上大物流shangdaH开头 赛澳递saiaodi汇通快运huitongkuaidi山西红马甲sxhongmajia汇强快递huiqiangkuaidi圣安物流shenganwuliu华宇物流tiandihuayu穗佳物流suijiawuliu恒路物流hengluwuliuT开头 华夏龙huaxialongwuliu天地华宇tiandihuayu海航天天tiantian天天快递tiantian海外环球haiwaihuanqiuTNTtnt河北建华hebeijianhuaTNT-国际tnten海盟速递haimengsudi通和天下tonghetianxia华企快运huaqikuaiyunU开头 J开头 UPSups加拿大邮政canpostUPS-国际upsen加拿大邮政canpostfrUSPSusps佳吉物流jiajiwuliu优速物流youshuwuliu佳怡物流jiayiwuliuW开头 加运美jiayunmeiwuliu万家物流wanjiawuliu京广速递inguangsudikuaijian万象物流wanxiangwuliu
“Python查询快递的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/kevinguocn/blog/4908868