今天介绍一个19行代码就能搞定的查询快递的脚本。
开发语言:Python
开发环境:windows+Python3.6版本
开发平台:PyCharm
首先导入json以及request模块
importjson
importrequests
JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。JSON的数据格式其实就是Python里面的字典格式,里面可以包括方括号括起来的数组,也就是Python里面的列表。
request模块的功能就是模拟浏览器对某一特定URL进行访问。
defsearchPackage():
packageNum =input('请输入运单号码(只有正在途中才能看到哦):')
url1 ='http://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text='+ packageNum
# 用url1查询运单号对应的快递公司,如中通,返回:中通。
companyName = json.loads(requests.get(url1).text)['auto'][]['comCode']
#在用url2查询和运单号、快递公司来查询快递详情,结果是一个json文,
#用dict保存在resultdict中。
url2 ='http://www.kuaidi100.com/query?type='+ companyName +'&postid='+ packageNum
定义一个函数,这里面调用的是快递100的API。URL使用Chrome的F12开发者工具获得。
这里companyName返回的值是
{"comCode":"","num":"888298869225448937","auto":[{"comCode":"yuantong","id":"","noCount":941716,"noPre":"88829","startTime":""}]}
我们拿到其中的快递公司名字(测试用例为圆通)yuantong。并将其值传入至url2中进行第二次请求。
print('时间 地点和跟踪进度\n')
foriteminjson.loads(requests.get(url2).text)['data']:
print(item['time'],item['context'])
遍历url2请求后返回的数据,拿到时间以及快递的所在位置信息。
searchPackage()
最后执行函数。
测试结果:
这样一个查询快递的脚本就实现了,怎么样,是不是对Python的JSON处理数据,以及request的使用更熟悉了呢。
领取专属 10元无门槛券
私享最新 技术干货