本篇内容介绍了“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-02
import urllib
import json
def 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,value
if __name__ == '__main__':
#测试,顺丰代码:shunfeng
jsonStr = getExpress('shunfeng','102290224058')
showResult(jsonStr)
raw_input()
快递公司名称 代码 快递公司名称 代码 快递公司名称 代码 A开头
急先达 jixianda 微特派 weitepai 澳大利亚邮政 auspost 晋越快递 jinyuekuaidi X开头
AAE aae 捷特快递 jietekuaidi 新邦物流 xinbangwuliu 安信达 anxindakuaixi 金大物流 jindawuliu 信丰物流 xinfengwuliu B开头 嘉里大通 jialidatong 星晨急便 xingchengjibian 百世汇通 huitongkuaidi K开头
鑫飞鸿 xinhongyukuaidi 百福东方 baifudongfang 快捷速递 kuaijiesudi 希伊艾斯 cces BHT bht 康力物流 kangliwuliu 新蛋奥硕物流 neweggozzo 包裹/平邮/挂号 youzhengguonei 跨越物流 kuayue 香港邮政 hkpost 邦送物流 bangsongwuliu L开头
Y开头
C开头
联昊通 lianhaowuliu 圆通速递 yuantong 希伊艾斯 cces 龙邦物流 longbanwuliu 韵达快运 yunda 传喜物流 chuanxiwuliu 蓝镖快递 lanbiaokuaidi 运通快递 yuntongkuaidi D开头
乐捷递 lejiedi 邮政小包 youzhengguonei 大田物流 datianwuliu 联邦快递 lianbangkuaidi 邮政小包 youzhengguoji 德邦物流 debangwuliu 联邦快递 lianbangkuaidien 远成物流 yuanchengwuliu DPEX dpex 立即送 lijisong 亚风速递 yafengsudi DHL-中国件 dhl 隆浪快递 longlangkuaidi 一邦速递 yibangwuliu DHL-国际件 dhlen M开头
优速物流 youshuwuliu DHL-德国件 dhlde 门对门 menduimen 源伟丰快递 yuanweifeng D速快递 dsukuaidi 美国快递 meiguokuaidi 元智捷诚 yuanzhijiecheng 递四方 disifang 明亮物流 mingliangwuliu 越丰物流 yuefengwuliu E开头
O开头
源安达 yuananda EMS ems OCS ocs 原飞航 yuanfeihangwuliu EMS-国际件 emsen onTrac ontrac 一统飞鸿 yitongfeihong E邮宝 ems Q开头
Z开头 F开头
全晨快递 quanchenkuaidi 忠信达快递 zhongxinda Fedex-国际件 fedex 全际通 quanjitong 芝麻开门 zhimakaimen Fedex-中国件 fedexcn 全日通 quanritongkuaidi 银捷速递 yinjiesudi Fedex-美国件 fedexus 全一快递 quanyikuaidi 宅急送 zhaijisong 飞康达物流 feikangda 全峰快递 quanfengkuaidi 郑州建华 zhengzhoujianhua 飞快达 feikuaida 七天连锁 sevendays 中国东方 coe 凡客如风达 rufengda R开头
中通速递 zhongtong 风行天下 fengxingtianxia 如风达快递 rufengda 中铁物流 zhongtiewuliu 飞豹快递 feibaokuaidi S开头
中铁快运 ztky G开头
山东海红 haihongwangsong 中邮物流 zhongyouwuliu 港中能达 ganzhongnengda 申通快递 shentong 中速快件 zhongsukuaidi 国通快递 guotongkuaidi 顺丰速递 shunfeng 中天万运 zhongtianwanyun 广东邮政 guangdongyouzhengwuliu 顺丰速递-国际 shunfengen
挂号信 youzhengguonei 三态速递 santaisudi
国内邮件 youzhengguonei 速尔物流 suer
国际邮件 youzhengguoji 盛辉物流 shenghuiwuliu
GLS gls 盛丰物流 shengfengwuliu
共速达 gongsuda 上大物流 shangda
H开头
赛澳递 saiaodi
汇通快运 huitongkuaidi 山西红马甲 sxhongmajia
汇强快递 huiqiangkuaidi 圣安物流 shenganwuliu
华宇物流 tiandihuayu 穗佳物流 suijiawuliu
恒路物流 hengluwuliu T开头
华夏龙 huaxialongwuliu 天地华宇 tiandihuayu
海航天天 tiantian 天天快递 tiantian
海外环球 haiwaihuanqiu TNT tnt
河北建华 hebeijianhua TNT-国际 tnten
海盟速递 haimengsudi 通和天下 tonghetianxia
华企快运 huaqikuaiyun U开头
J开头
UPS ups
加拿大邮政 canpost UPS-国际 upsen
加拿大邮政 canpostfr USPS usps
佳吉物流 jiajiwuliu 优速物流 youshuwuliu
佳怡物流 jiayiwuliu W开头
加运美 jiayunmeiwuliu 万家物流 wanjiawuliu
京广速递 inguangsudikuaijian 万象物流 wanxiangwuliu
“Python查询快递的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。