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:USERDATApython>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:USERDATApython>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:USERDATApython>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 '''
 
 
 
 
原文地址:https://www.cnblogs.com/www1707/p/10692443.html