首页 物流新闻 用Python快速查询快递物流信息

用Python快速查询快递物流信息

/1 前语/ 我们好,欢迎来到 Crossin的编程教室 ! 咱们常常会去查快递的物流单号,可是这些物流单号是从哪里来的呢? “快递100”是一个调集了多家快递公司查询接口,输入相…




/1 前语/









我们好,欢迎来到 Crossin的编程教室 !



咱们常常会去查快递的物流单号,可是这些物流单号是从哪里来的呢?



“快递100”是一个调集了多家快递公司查询接口,输入相应快递公司编码和快递单号就能够获取到对应的物流信息,很方便快捷。咱们能够经过它来完成自己查询东西。




/2 项目方针/

运用Python编程去查询自己的物流信息。




/3 项目预备/

软件:PyCharm



需求的库:

urllib.request


、json



网站如下:

      
        https://www.kuaidi100.com
      
    



/4 项目分析/







一、


怎么获取真实的网址,拿到相对应的接口?



1、chrome浏览器F12查看,随意输入一个快递单号,点击查找。如图:




      
        https://www.kuaidi100.com/query?type=shentongpostid=773036432685909temp=0.036216phone=
      
    




3、能够看到postid便是咱们的快递单号,type便是各个快递公司的姓名拼音的简称。那等下就能够界说这个字典去寄存各个公司姓名的简称拼接网址。


4、在 Preview 栏目里找到对应的 data,能够看到context便是物流信息。等下能够经过js解析获取对应的字段。





/5 项目完成/


1、界说一个class类承继object。导入需求的库和网址。界说一个字典kd_dict寄存快递公司简称。

      
        import urllib.request
      
      
        import json
      
      
        
          
kd_dict = {1: 'shentong', 2: 'youzhengguonei', 3: 'yuantong', 4: 'shunfeng', 5: 'yunda', 6: 'zhongtong'}
class YU(object): pass


2、树立查询结构。

      
          while True:
      
      
              print("输入要查询快递公司:")
      
      
              print("1.申通  2.EMS邮政  3.圆通 4.顺风 5.韵达 6.中通  0.退出\n ")
      
      
        
          
choose = int(input("请挑选您的快递公司:")) while choose not in range(0, 7): choose = int(input("抱愧暂不支撑此公司请从头挑选:")) if choose == 0: break kd_num = input("请输入快递单号:")


3、对js文件进行解析。

      
            url = "http://www.kuaidi100.com/query?type=%spostid=%s" % (kd_dict[choose], kd_num)
      
      
            response = urllib.request.urlopen(url)
      
      
            html = response.read().decode('utf-8')
      
      
            target = json.loads(html)
      
    

4、判别status的是不是200,是200才能够正常拜访 ,获取对应的data。

      
         if status == '200':
      
      
              data = target['data']
      
      
              # print(data)
      
      
              data_len = len(data)
      
      
              # print(data_len)
      
      
              # print("\n")
      
    

5、for循环遍历,获取对应的字段。

      
          for i in range(data_len):
      
      
                print("\n时刻: " + data[i]['time'])
      
      
                print("状况: " + data[i]['context'] + "")
      
      
            print("\n感谢运用!\n")
      
      
            break
      
      
        else:
      
      
            print("输入有误请从头输入!\n")
      
    


6、程序循环。

      
           while True:
      
      
              YU.Check()
      
      
              out = input("按恣意数字退出(其他键持续).........")
      
      
              if out = '0' and out = '7':
      
      
                  break
      
      
              else:
      
      
                  print("\n")
      
      
                  continue
      
    






/6 作用展现/

1、点击绿色小三角运转,之后输入快递公司代表的编号。



2、输入你的快递单号,之后在操控台上能够看到显现成果,如下图所示。






/7 小结/


1、不主张抓取太多数据,简单对服务器形成负载,浅尝辄止即可。
2、本文章经过python爬取快递100,介绍了怎么去拼接字符串,以及列表怎么进行类型的转化。
3、经过文中Python程序,能够明晰的看到你的快递的物流信息。
4、欢迎我们活跃测验,有时分看到他人完成起来很简单,可是到自己着手完成的时分,总会有各式各样的问题,切勿眼高手低,勤着手,才能够了解的愈加深入。


项目源码:

https://github.com/cassieeric/python_crawler/blob/master/Kuaidixinxi/Kuaidi.py








_
往期文章引荐
_

手把手教你用python“查气候”







本文来自网络,不代表快递资讯网立场。转载请注明出处: http://www.llaiot.com/logistics-news/1697.html
上一篇
下一篇

为您推荐