ホームページ  >  記事  >  バックエンド開発  >  Python を使用して物流情報をクエリする方法を段階的に説明します。

Python を使用して物流情報をクエリする方法を段階的に説明します。

Go语言进阶学习
Go语言进阶学习転載
2023-07-25 17:13:502660ブラウズ

/1 はじめに/

速達便の物流注文番号をよく確認しますが、これらの物流注文は数字はどこから来たのですか?

Express Bird は、複数の運送会社のクエリ インターフェースを統合しており、対応する運送会社コードと速達注文番号を入力して、対応する物流情報を取得することが非常に便利かつ迅速です。

Python を使用して物流情報をクエリする方法を段階的に説明します。


/2 プロジェクト目標/

Python プログラミングを使用して独自の物流情報をクエリする方法を全員に教えます。


/3 プロジェクトの準備/

ソフトウェア:

PyCharm

必要なライブラリ:

urllib.request 、json

ウェブサイトは次のとおりです:

https://www.kuaidi100.com


##/4 プロジェクト分析/

1. 実際の URL と対応するインターフェイスを取得するにはどうすればよいですか?

#1. ChromeブラウザのF12で確認し、配送業者番号を入力してクリックして検索してください。図に示すように:

Python を使用して物流情報をクエリする方法を段階的に説明します。

##‍

2. ファイル

query?type=shentong&postid=773036432685909&temp=0.0

を見つけます。リクエスト URL を見つけて、URL をコピーします。



3. 分析 URL:

https://www.kuaidi100.com/query?type=shentong&postid=773036432685909&temp=0.03191355265516216&phone=

4、可以看到postid就是我们的快递单号,type就是各个快递公司的名字拼音的简称。那等下就可以定义这个字典去存放各个公司名字的简称拼接网址。

5、找到Preview=>>对应的data可以看到context就是物流信息。等下可以通过js解析获取对应的字段。

Python を使用して物流情報をクエリする方法を段階的に説明します。


/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=%s&postid=%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 >= &#39;0&#39; and out <= &#39;7&#39;:
          break
      else:
          print("\n")
          continue


/6 效果展示/

1. 緑色の三角形をクリックして実行し、運送会社の代表者の番号を入力します。

Python を使用して物流情報をクエリする方法を段階的に説明します。


#2. 速達番号を入力すると、コンソールに表示結果が表示されます。 . 以下のようになります。

Python を使用して物流情報をクエリする方法を段階的に説明します。


#/7 概要/

1. あまりにも多くのデータを取得すると、サーバーに負荷がかかりやすくなるため、お勧めできません。
2. この記事では、Python クロール Express 100 で文字列を結合する方法とリストの型を変換する方法を紹介します。
3. 記事内の Python プログラムを通じて、速達便の物流情報を明確に確認できます。

以上がPython を使用して物流情報をクエリする方法を段階的に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はGo语言进阶学习で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。