基于爬虫的快递信息查询的GUI
#第一次写博客,哎呀,我都想象到以后工作的日子了。颤抖的心,激动的手。
#话不多说,先上代码
import tkinter as tk
import requests
import json
#from PIL import ImageTk as itk
class MyFrame(Frame):
def __init__(self):
self.root = Tk()
self.root.title("快递查询")
self.root.geometry('1200x700+400+220')
self.goods = Entry(self.root, width=16, font=("仿宋", 18, "normal"))
self.goods.place(x=200, y=60)
self.goods_id = Entry(self.root, width=16, font=("仿宋", 18, "normal"))
self.goods_id.place(x=600, y=60)
goodslabel = Label(self.root, text='查询快递公司', font=("仿宋", 18, "normal"))
goodslabel.place(x=40, y=60)
goods_idlabel = Label(self.root, text='查询快递单号', font=("仿宋", 18, "normal"))
goods_idlabel.place(x=450, y=60)
# 查询按钮
chaxun = Button(self.root, width=10, height=3, text="查询", bg='#00CCFF', bd=5, font="bold")
chaxun.bind("<Button-1>", self.search)
chaxun.place(x=1000, y=50)
self.result = Listbox(self.root, heigh=18, width=65, font=("仿宋", 20, "normal")) # 显示快递框
self.result.place(x=125, y=120)
def kuaidi(self,goods,goods_id):
print('请输入所要查询快递公司:')
print('请输入所要查询快递单号:')
goodstype=goods
goods_id=goods_id
a='查询的快递单号为' + str(goods_id)
self.result.insert(END, a)
b='其快递物流信息如下'
self.result.insert(END, b)
url='http://www.kuaidi100.com/query?type=%s&postid=%s' % (goodstype, goods_id)
#print(url)
#self.result.insert(END, url)
rs = requests.get(url)
kd_info = json.loads(rs.text)
data = kd_info['data']
for data_dict in data:
time = data_dict['time']
context = data_dict['context']
self.result.insert(END, time)
self.result.insert(END, context)
def search(self,event):
mygoods=self.goods.get()
mygoods_id=self.goods_id.get()
if(mygoods!=''):
#self.result.delete(0,END)
#self.goods.delete(0,END)
self.kuaidi(mygoods,mygoods_id)
if __name__=='__main__':
myframe=MyFrame()
myframe.root.mainloop()
运行代码效果图如下
下面介绍这个项目项目需要注意的几点
- 首先必须是正在运送的快递,而且得知道快递公司的名称
- 通过抓包分析出其url,解析出快递公司必须是公司拼音,比如是韵达是yunda。
- 该GUI没有一个重置的按钮,其实当时我想到了。但是balebalebale,所以最后没有实现。
- 这个GUI框架是我之前做天气预报时用的,然后基本上没有改变。
最后,希望我们每一个人都可以找到对编程的兴趣!!!!!