<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用Python快速查詢快遞物流信息

          共 1867字,需瀏覽 4分鐘

           ·

          2021-02-12 11:35



          /1 前言/


          大家好,歡迎來到 Crossin的編程教室 !


          我們經(jīng)常會去查快遞的物流單號,可是這些物流單號是從哪里來的呢?


          “快遞100”是一個集合了多家快遞公司查詢接口,輸入相應(yīng)快遞公司編碼和快遞單號就可以獲取到對應(yīng)的物流信息,很方便快捷。我們可以通過它來實(shí)現(xiàn)自己查詢工具。



          /2 項(xiàng)目目標(biāo)/


          利用Python編程去查詢自己的物流信息。


          /3?項(xiàng)目準(zhǔn)備/


          軟件:PyCharm


          需要的庫:urllib.request、json


          網(wǎng)站如下:

          https://www.kuaidi100.com


          /4 項(xiàng)目分析/


          一、如何獲取真正的網(wǎng)址,拿到相對應(yīng)的接口?


          1、chrome瀏覽器F12檢查,隨便輸入一個快遞單號,點(diǎn)擊查找。如圖:


          ?


          2、找到請求的接口地址:

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


          3、可以看到postid就是我們的快遞單號,type就是各個快遞公司的名字拼音的簡稱。那等下就可以定義這個字典去存放各個公司名字的簡稱拼接網(wǎng)址。


          4、在 Preview 欄目里找到對應(yīng)的 data,可以看到context就是物流信息。等下可以通過js解析獲取對應(yīng)的字段。



          /5?項(xiàng)目實(shí)現(xiàn)/


          1、定義一個class類繼承object。導(dǎo)入需要的庫和網(wǎng)址。定義一個字典kd_dict存放快遞公司簡稱。

          import urllib.requestimport 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.順風(fēng) 5.韻達(dá) 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文件進(jìn)行解析。

          ????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才可以正常訪問 ,獲取對應(yīng)的data。

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


          5、for循環(huán)遍歷,獲取對應(yīng)的字段。

            for i in range(data_len):        print("\n時間: " + data[i]['time'])        print("狀態(tài): " + data[i]['context'] + "")    print("\n感謝使用!\n")    breakelse:    print("輸入有誤請重新輸入!\n")


          6、程序循環(huán)。

             while True:      YU.Check()      out = input("按任意數(shù)字退出(其他鍵繼續(xù)).........")      if out >= '0' and out <= '7':          break      else:          print("\n")          continue


          /6?效果展示/


          1、點(diǎn)擊綠色小三角運(yùn)行,之后輸入快遞公司代表的編號。



          2、輸入你的快遞單號,之后在控制臺上可以看到顯示結(jié)果,如下圖所示。



          /7 小結(jié)/


          1、不建議抓取太多數(shù)據(jù),容易對服務(wù)器造成負(fù)載,淺嘗輒止即可。
          2、本文章通過python爬取快遞100,介紹了如何去拼接字符串,以及列表如何進(jìn)行類型的轉(zhuǎn)換。
          3、通過文中Python程序,可以清晰的看到你的快遞的物流信息。
          4、歡迎大家積極嘗試,有時候看到別人實(shí)現(xiàn)起來很簡單,但是到自己動手實(shí)現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

          項(xiàng)目源碼:

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


          如果文章對你有幫助,歡迎轉(zhuǎn)發(fā)/點(diǎn)贊/收藏!

          作者:Python進(jìn)階者
          來源:Python爬蟲與數(shù)據(jù)挖掘


          _往期文章推薦_

          手把手教你用python“查天氣”




          瀏覽 57
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月麻豆 | 18禁网站禁片免费观看 | 品精久久 | 99精品国产麻豆99久久久久久 | 欧美性青草视频在线看 |