zoukankan      html  css  js  c++  java
  • python爬虫快递查询系统(源码)


    import requests
    import json


    def get_express_type(postid):
    '''根据快递单号来智能判断快递类型'''
    url = 'http://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=%s' % (postid,) # 这里可以用元组这样保证的数据的安全性
    # 把构造后的url通过requests请求来得到相应的数据是一个json数据
    rs = requests.get(url)
    # 再用json库中的loads数据来进行分析得到一个可用字典的方式来访问
    kd_type_info = json.loads(rs.text)
    kd_type = kd_type_info['auto'][0]['comCode']
    return kd_type, postid


    def execute_data_query(type, postid):
    '''执行数据查询程序'''

    # 通过构造一个真正的url地址
    url = 'http://www.kuaidi100.com/query?type=%s&postid=%s' % (type, postid) # 这里可以用元组这样保证的数据的安全性
    # 把构造后的url通过requests请求来得到相应的数据是一个json数据
    rs = requests.get(url)
    # 再用json库中的loads数据来进行分析得到一个可用字典的方式来访问
    kd_info = json.loads(rs.text)
    msg = kd_info['message']
    # 判断是否成功获取到了json的数据,如果有数据则进行下一步的解析
    if msg == 'ok':
    print('您的快递%s物流信息如下:' % postid)
    data = kd_info['data']
    for data_dict in data:
    time = data_dict['time']
    context = data_dict['context']
    print('时间:%s %s' % (time, context))
    else:
    if msg == '参数错误':
    print('您输入信息有误,请重输:')
    else:
    print(msg)


    def main():
    '''快递查询主程序'''
    while True:
    print('**欢迎您登录快递查询系统**')
    print('-' * 30)
    print('** 1. 请输入您的快递单号 **')
    print('** 0. 退出查询系统 **')
    print('-' * 30)
    order = input('查询请输入1退出请输入0:')
    if order == '1':
    # 进行快递查询操作
    postid = input('请输入您的快递单号:')
    type, postid = get_express_type(postid)
    execute_data_query(type, postid)
    elif order == '0':
    exit()
    else:
    print('!!!!!您的指令输入有误,请重新输入:<---------')


    if __name__ == '__main__':
    main()
  • 相关阅读:
    pat甲级 1155 Heap Paths (30 分)
    pat甲级 1152 Google Recruitment (20 分)
    蓝桥杯 基础练习 特殊回文数
    蓝桥杯 基础练习 十进制转十六进制
    蓝桥杯 基础练习 十六进制转十进制
    蓝桥杯 基础练习 十六进制转八进制
    51nod 1347 旋转字符串
    蓝桥杯 入门训练 圆的面积
    蓝桥杯 入门训练 Fibonacci数列
    链表相关
  • 原文地址:https://www.cnblogs.com/yunlongaimeng/p/9536553.html
Copyright © 2011-2022 走看看