12、 一键查快递
实现功能:用户输入快递名称和单号,程序即可在快递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 '''