利用快递100免费接口获取物流信息+缓存历史查询记录

闲来没事,查快递之余想着不如写个Python查询快递练练手,辛辛苦苦到各快递官网抓api发现工作量太大,只完成了部分,因此本次就偷懒用现成“快递100”免费接口查询吧,方便省事。

一、关于接口获取有两种办法:

1.官网文档:http://www.kuaidi100.com/openapi/api_jump.shtml(选择适合自己口味的接口吧)。
2.抓包:提供以下几个可抓的接口,都非常简单,就不做介绍了。

-a.微信公众号接口
-b.微信小程序接口
-c.电脑的网页接口


二、代码太简单直接上,不做解释了。

import pathlib
import time

import requests
file_path = r'这里替换成缓存文件的**路径**'

def init():
    path = pathlib.Path(file_path+'\history.csv')
    # print(path.is_file())

    if path.is_file()==True:
        files = open(file_path+'\history.csv')

        print('**温馨提示**:查询到历史记录,可复制粘贴单号查询:'+'\n',files.read())
        check()
    else:
        print('**温馨提示**:未查询到历史记录,请输入单号查询。\n')
        check()

def info(comp_type,num):

    url = 'https://m.kuaidi100.com/query?type={}&postid={}'.format(comp_type,num)
    result = requests.get(url)
    for n in range(0,len(result.json()['data'])):
        print(result.json()['data'][n]['time']+'\t',result.json()['data'][n]['context'])

    now = time.strftime("%Y.%m.%d\t%H:%M:%S")
    with open(file_path+'\history.csv','a+') as ff:
        ff.write(now+'\t'+comp_type+'\t'+num+'\n')

def check():

    num = input('\n请输入快递单号:')
    # num = '1'
    auto_url = 'http://m.kuaidi100.com/autonumber/auto?num={}'.format(num)
    auto_org = requests.get(auto_url)
    if auto_org.json() == []:

        print('\n**温馨提示**:单号有误或未录入,请核对单号或稍后再尝试!\n')
    else:
        comp_type = auto_org.json()[0]['comCode']
        print('\n快递类型:',comp_type)
        print('快递单号:',num+'\n')
        info(comp_type,num)

init()



三、效果演示如下:

1.首次查询效果:

利用快递100免费接口获取物流信息+缓存历史查询记录_第1张图片



2.非首次查询效果:

利用快递100免费接口获取物流信息+缓存历史查询记录_第2张图片

你可能感兴趣的:(Python,Python_爬虫)