python调用快递鸟api实现查快递
由于我们快递信息是好多平台得,所以说需要一个能去某一个集成到一块得地方查询,那么我用的是快递鸟。
进去注册、登录之后,购买即时查询的业务(免费版,一天500次),在界面我的会员中心界面,会有用户id和API key两项,作为我们调用的凭据。
然后直接把这两项放到代码相应位置。
这个文章得代码是直接抄百度的,这里写作作为学习记录。用的就是一些发送post、get请求的知识,没什么新东西。
返回的数据是json格式,里边的东西一看就懂,很简单。
import requests
import base64
import hashlib
import json
def get_logistics_info(number, code):
def get_dataSign(req_data, appKey):
md5 = hashlib.md5()
md5.update(req_data.encode('utf-8'))
md5.update(appKey.encode('utf-8'))
return base64.b64encode(md5.hexdigest().encode('utf-8'))
api_key = '111111111111111111111111111111' # 需要注册完获取
user_id = '1111111' # 需要注册完获取
order_num = number # 运单编号
ShipperCode = code # 快递公司编码
url = 'http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx'
order_data = {
"ShipperCode": ShipperCode,
"LogisticCode": order_num,
}
data = {
"RequestData": json.dumps(order_data).encode('utf-8'),
"EBusinessID": user_id,
"RequestType": 1002,
"DataSign": get_dataSign(json.dumps(order_data), api_key),
}
headers = {
"Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36",
}
response = requests.post(url=url, data=data, headers=headers)
return response.content.decode('utf-8')
# 调用
x = get_logistics_info('1111111111', 'HTKY' )# 这个htky是百世快递,前一项是快递单号
print(x)
调用时,HTKY那一项是每一个快递特有的,所以说,需要去快递鸟查询一下,会有一个名字为《快递公司编码》的文件,点击下载,打开查看就好。也可点击这里直接下载,这是我直接复制过来的地址。
最后贴一个效果
{
"LogisticCode" : "123456789",
"ShipperCode" : "HTKY",
"Traces" : [ {
"AcceptStation" : "【万州天城分部】,已揽收",
"AcceptTime" : "2020-09-23 17:16:32"
}, {
"AcceptStation" : "到【重庆2分拨集货点】",
"AcceptTime" : "2020-09-24 20:06:03"
}, {
"AcceptStation" : "【空港一部】,正发往【重庆转运中心】",
"AcceptTime" : "2020-09-24 21:08:40"
} ],
"State" : "3",
"EBusinessID" : "******",
"Success" : true
}