千家信息网

如何使用python快递查询系统

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,如何使用python快递查询系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。导语随着网购的广泛普及,现在大部分年轻人都喜欢上了网购的方
千家信息网最后更新 2026年11月02日如何使用python快递查询系统

如何使用python快递查询系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

导语

随着网购的广泛普及,现在大部分年轻人都喜欢上了网购的方式。

很多东西物美价廉,出不出户也能满足你的购买需求!

尤其是中秋来临,哪些假期短回不了家的也想给家人带点儿中秋礼物~

这不?赶上中秋了,之前给家里寄东西的时候就出现过几次,物流信息一直没更新,不清楚东西到哪儿了,问卖家:说有时候上面没更新,但是到你家楼下了会打电话让你取快递的~

果然,emmmmmm,"打扰了!!"不知道你们遇到过没??

后来小编在一个专门全国查询快递的网站找到了物流信息23333,感觉这还是蛮实用的,至少快递也没丢撒!

今天的话木木子带大家写一款有界面的专属快递物流查询小系统~再也不用担心自己的快递突然消失啦!

正文

环境安装:

安装包-Python3、Pycharm2021、模块-requests、pyqt5。

pip  install requestspip  install  pyqt5       #当然镜像源更快安装,环境问题直接找我

(1)首先导入所有快递公司的信息,这是以快递100为例的哈,之前爬的数据。

companies = pickle.load(open('companies.pkl', 'rb'))

(2)利用快递100查询快递。

def getExpressInfo(number):        url = 'http://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=%s' % number        headers = {                                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',                                'Host': 'www.kuaidi100.com'                        }        infos = []        for each in requests.get(url, headers=headers).json()['auto']:                company_name = each['comCode']                url = 'http://www.kuaidi100.com/query?type=%s&postid=%s' % (company_name, number)                temps = requests.get(url, headers=headers).json()['data']                info = '公司: %s\n' % py2hz(company_name)                for idx, each in enumerate(temps):                        if idx == 0:                                info += '-' * 60 + '\n时间:\n' + each['time'] + '\n进度:\n' + each['context'] + '\n' + '-' * 60 + '\n'                        else:                                info += '时间:\n' + each['time'] + '\n进度:\n' + each['context'] + '\n' + '-' * 60 + '\n'                if not temps:                        info += '-' * 60 + '\n' + '单号不存在或已过期\n' + '-' * 60 + '\n'                infos.append(info)        return infos

(3)制作快递查询系统的界面。

class ExpressGUI(QWidget):        def __init__(self, parent=None):                super(ExpressGUI, self).__init__(parent)                self.setWindowTitle('快递查询系统')                self.label1 = QLabel('快递单号:')                self.line_edit = QLineEdit()                self.label2 = QLabel('查询结果:')                self.text = QTextEdit()                self.button = QPushButton()                self.button.setText('查询')                self.grid = QGridLayout()                self.grid.setSpacing(12)                self.grid.addWidget(self.label1, 1, 0)                self.grid.addWidget(self.line_edit, 1, 1, 1, 39)                self.grid.addWidget(self.button, 1, 40)                self.grid.addWidget(self.label2, 2, 0)                self.grid.addWidget(self.text, 2, 1, 1, 40)                self.setLayout(self.grid)                self.resize(600, 400)                self.button.clicked.connect(self.inquiry)        def inquiry(self):                number = self.line_edit.text()                try:                        infos = getExpressInfo(number)                        if not infos:                                infos = ['-' * 60 + '\n' + '单号不存在或已过期\n' + '-' * 60 + '\n']                except:                        infos = ['-' * 60 + '\n' + '快递单号有误, 请重新输入.\n' + '-' * 60 + '\n']                self.text.setText('\n\n\n'.join(infos)[:-1])

效果如下:

附源码:

'''Function:        快递查询系统源码基地:#959755565#'''import sysimport pickleimport requestsfrom PyQt5.QtWidgets import *  '''导入所有快递公司信息'''companies = pickle.load(open('companies.pkl', 'rb'))  '''将快递公司的拼音变为汉字'''def py2hz(py):        return companies.get(py)  '''利用快递100查询快递'''def getExpressInfo(number):        url = 'http://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=%s' % number        headers = {                                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',                                'Host': 'www.kuaidi100.com'                        }        infos = []        for each in requests.get(url, headers=headers).json()['auto']:                company_name = each['comCode']                url = 'http://www.kuaidi100.com/query?type=%s&postid=%s' % (company_name, number)                temps = requests.get(url, headers=headers).json()['data']                info = '公司: %s\n' % py2hz(company_name)                for idx, each in enumerate(temps):                        if idx == 0:                                info += '-' * 60 + '\n时间:\n' + each['time'] + '\n进度:\n' + each['context'] + '\n' + '-' * 60 + '\n'                        else:                                info += '时间:\n' + each['time'] + '\n进度:\n' + each['context'] + '\n' + '-' * 60 + '\n'                if not temps:                        info += '-' * 60 + '\n' + '单号不存在或已过期\n' + '-' * 60 + '\n'                infos.append(info)        return infos  '''制作简单的GUI'''class ExpressGUI(QWidget):        def __init__(self, parent=None):                super(ExpressGUI, self).__init__(parent)                self.setWindowTitle('快递查询系统')                self.label1 = QLabel('快递单号:')                self.line_edit = QLineEdit()                self.label2 = QLabel('查询结果:')                self.text = QTextEdit()                self.button = QPushButton()                self.button.setText('查询')                self.grid = QGridLayout()                self.grid.setSpacing(12)                self.grid.addWidget(self.label1, 1, 0)                self.grid.addWidget(self.line_edit, 1, 1, 1, 39)                self.grid.addWidget(self.button, 1, 40)                self.grid.addWidget(self.label2, 2, 0)                self.grid.addWidget(self.text, 2, 1, 1, 40)                self.setLayout(self.grid)                self.resize(600, 400)                self.button.clicked.connect(self.inquiry)        def inquiry(self):                number = self.line_edit.text()                try:                        infos = getExpressInfo(number)                        if not infos:                                infos = ['-' * 60 + '\n' + '单号不存在或已过期\n' + '-' * 60 + '\n']                except:                        infos = ['-' * 60 + '\n' + '快递单号有误, 请重新输入.\n' + '-' * 60 + '\n']                self.text.setText('\n\n\n'.join(infos)[:-1])  '''run'''if __name__ == '__main__':        app = QApplication(sys.argv)        gui = ExpressGUI()        gui.show()        sys.exit(app.exec_())

看完上述内容,你们掌握如何使用python快递查询系统的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

快递 查询 单号 系统 查询系统 公司 信息 时间 进度 东西 物流 问题 内容 方法 更多 源码 环境 界面 结果 制作 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 互联网科技战争 没上市的科技互联网公司 互联网 科技公司 远信互联网科技 互联网科技公司官网 凡科互联网科技 上海喔噻互联网科技 左右互联网络科技 盛创互联网科技有限公司 江苏南京365互联网科技 恒银科技与互联网金融 互联网科技项目计划书材料类 科技类公司包括互联网吗 燊美集互联网科技有限公司 科技赋能视角下互联网保险发展 宇信科技在杭州互联网排第几 北京互联网科技类企业分布 安徽九吞吴互联网科技有限公司 互联网大会出现的黑科技 广州紫鲸互联网科技有限公司 北京路客互联网科技有限公司 中关村互联网科技集团 美国互联网科技 未来的互联网科技 汉立互联网科技有限公司联系电话 科技与互联网的利与弊 广西泛欧互联网科技有限公司 科技发展第三阶段互联网时代 株洲百竞科技的互联网营销顾问
0