Python快递信息查询
今天想查个快递,只知道单号,通常直接输入百度就能查到物流信息,这次想用自己代码来查询下,整个程序就用到Json和Requests两个库,调用的是快递100的API
获取快递公司简称
https://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=’+ 快递单号
{
"comCode": "",
"num": "1003030947526",
"auto": [
{
"comCode": "ems",
"id": "",
"noCount": 947,
"noPre": "100303",
"startTime": ""
}
]
}
抓包获取快递物流信息地址,得到JSON数据
{
"message": "ok",
"nu": "1003030947526",
"ischeck": "1",
"condition": "F00",
"com": "ems",
"status": "200",
"state": "3",
"data": [
{
"time": "2017-12-01 13:34:11",
"ftime": "2017-12-01 13:34:11",
"context": "[苏州市]投递并签收,签收人:他人收 快递柜",
"location": null
},
{
"time": "2017-12-01 09:34:41",
"ftime": "2017-12-01 09:34:41",
"context": "[苏州市]昆山市花桥邮政速递营业部安排投递,预计23:59:00前投递(投递员姓名:陆晓华;联系电话:18912661298)",
"location": null
}
}
完整代码(大概不到十行代码解决)
import json
import requests
Number = input('请输入快递单号:\n')
#查询快递名称
url1= 'https://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text='+ Number
#解析json
express = json.loads(requests.get(url1).text)['auto'][0]['comCode']
#查询快递信息
url2= 'https://www.kuaidi100.com/query?type={}&postid={}'.format(express,Number)
info = json.loads(requests.get(url2).text)['data']
for x in info:
success = (x['time']+x['context'])
print(success)
很多网站都可以用api来调用数据,比如车票,快递,豆瓣,网易…
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。