python获取快递物流信息
目的:
通过订单号获取订单物流状态。
实现方式:
通过快递鸟的总api实现调用,快递鸟做了所有快递的兼容。
快递鸟:
官方文档:
http://www.kdniao.com/v2/API/Track.aspx
前提:
注册账户,实名认证,拿到用户id和API key,开通业务及时查询。
封装好的代码:
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 = '----快递鸟的----' # 需要注册完获取 user_id = 快递鸟的用户id # 需要注册完获取 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')
// 标红部分记得重写
调用演示:
效果:
注意:
1. 快递公司编码获得,官方接口文档获取
![](https://img2020.cnblogs.com/blog/1614173/202006/1614173-20200616162741503-1607064388.png)
2. 免费版,只能对(中通、圆通、申通)查询,每天500次免费调用量
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步