實現功能:使用者輸入快遞名稱和單號,程式即可在快遞100https://www.kuaidi100.com/爬取最新物流狀態,並將其列印出來。
1 #12 一鍵查快遞 2 # 實現功能:使用者輸入快遞名稱和單號,程式即可在快遞100https://www.kuaidi100.com/爬取最新物流狀態,並將其列印出來。 3 4 import requests 5 6 headers = { 7 'Accept': 'application/json, text/javascript, */*; q=0.01', 8 'Accept-Encoding': 'gzip, deflate, br', 9 'Accept-Language': 'zh-CN,zh;q=0.9', 10 'Cache-Control': 'no-cache', 11 'Connection': 'keep-alive', 12 'Cookie': 'WWWID=WWW87CF938264094BB5DD55AD0CBC7ECB6B; Hm_lvt_22ea01af58ba2be0fec7c11b25e88e6c=1554733026; Hm_lpvt_22ea01af58ba2be0fec7c11b25e88e6c=1554733026', 13 'Host': 'www.kuaidi100.com', 14 'Pragma': 'no-cache', 15 'Referer': 'https://www.kuaidi100.com/', 16 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', 17 'X-Requested-With': 'XMLHttpRequest' 18 } 19 20 kuaidi_num = input('請輸入你的快遞單號: ') 21 #kuaidi_num = '600165600187721094' 22 23 res = requests.get('https://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text={}'.format(kuaidi_num)) 24 html = res.json() 25 kuaidi_gongsis = html['auto'] 26 for i in kuaidi_gongsis: 27 kuaidi_gongsi_yn = input('您使用的快遞公司是{}嗎?(y / n)'.format(i['comCode'])) 28 if kuaidi_gongsi_yn == 'y': 29 kuaidi_gongsi = i['comCode'] 30 break 31 else: 32 kuaidi_gongsi = input('請輸入其他快遞公司名稱:') 33 34 res = requests.get('https://www.kuaidi100.com/query?type={}&postid={}'.format(kuaidi_gongsi,kuaidi_num),headers=headers) 35 36 html = res.json() 37 kuaidi_infos = html['data'] 38 39 print('------------------您的{}快遞運單號{}資訊如下:--------------'.format(kuaidi_gongsi,kuaidi_num)) 40 41 for kuaidi_info in kuaidi_infos: 42 print(kuaidi_info['time'],kuaidi_info['context']) 43 44 ''' 45 執行結果如下: 46 47 D:\USERDATA\python>C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe d:/USERDATA/python/12.py 48 請輸入你的快遞單號: 600165600187721094 49 您使用的快遞公司是yuantong嗎?(y / n)y 50 ------------------您的yuantong快遞運單號600165600187721094資訊如下:-------------- 51 2019-04-07 12:28:13 客戶 簽收人: 郵件收發章 已簽收 感謝使用圓通速遞,期待再次為您服務 52 2019-04-07 07:22:11 【北京市大興區亦莊西區公司】 派件人: 於博 派件中 派件員電話15311887923 53 2019-04-07 07:08:47 【北京市大興區亦莊西區公司】 已收入 54 2019-04-06 14:10:22 【北京轉運中心】 已發出 下一站 【北京市大興區亦莊西區公司】 55 2019-04-06 14:03:52 【北京轉運中心】 已收入 56 2019-04-04 20:45:45 【金華轉運中心】 已發出 下一站 【北京轉運中心】 57 2019-04-04 20:40:43 【金華轉運中心】 已收入 58 2019-04-04 20:10:32 【浙江省金華市金東區】 已發出 下一站 【金華轉運中心】 59 2019-04-04 19:52:08 【浙江省金華市金東區公司】 已打包 60 2019-04-04 19:49:53 【浙江省金華市金東區公司】 已收件 61 62 D:\USERDATA\python>C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe d:/USERDATA/python/12.py 63 請輸入你的快遞單號: 600165600187721094 64 您使用的快遞公司是yuantong嗎?(y / n)n 65 您使用的快遞公司是dhlen嗎?(y / n)y 66 ------------------您的dhlen快遞運單號600165600187721094資訊如下:-------------- 67 68 D:\USERDATA\python>C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe d:/USERDATA/python/12.py 69 請輸入你的快遞單號: 600165600187721094 70 您使用的快遞公司是yuantong嗎?(y / n)n 71 您使用的快遞公司是dhlen嗎?(y / n)n 72 請輸入其他快遞公司名稱:daji 73 ------------------您的daji快遞運單號600165600187721094資訊如下:-------------- 74 75 '''