/1 前语/
我们好,欢迎来到 Crossin的编程教室 !
咱们常常会去查快递的物流单号,可是这些物流单号是从哪里来的呢?
“快递100”是一个调集了多家快递公司查询接口,输入相应快递公司编码和快递单号就能够获取到对应的物流信息,很方便快捷。咱们能够经过它来完成自己查询东西。
/2 项目方针/
运用Python编程去查询自己的物流信息。
/3 项目预备/
软件:PyCharm
需求的库:
urllib.request
、json
网站如下:
https://www.kuaidi100.com
/4 项目分析/
一、
怎么获取真实的网址,拿到相对应的接口?
1、chrome浏览器F12查看,随意输入一个快递单号,点击查找。如图:
https://www.kuaidi100.com/query?type=shentongpostid=773036432685909temp=0.036216phone=
3、能够看到postid便是咱们的快递单号,type便是各个快递公司的姓名拼音的简称。那等下就能够界说这个字典去寄存各个公司姓名的简称拼接网址。
4、在 Preview 栏目里找到对应的 data,能够看到context便是物流信息。等下能够经过js解析获取对应的字段。
/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=%spostid=%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 = '0' and out = '7':
break
else:
print("\n")
continue
/6 作用展现/
1、点击绿色小三角运转,之后输入快递公司代表的编号。
2、输入你的快递单号,之后在操控台上能够看到显现成果,如下图所示。
/7 小结/
项目源码:
https://github.com/cassieeric/python_crawler/blob/master/Kuaidixinxi/Kuaidi.py
_
往期文章引荐
_
