PyQt5+requests实现车票查询工具

PyQt5 + requests 实现车票查询工具

PyQt5 是一个 Python 的 GUI 库,可以用来开发桌面应用程序。requests 是一个 Python 的 HTTP 客户端库,可以用来发送 HTTP 请求。以下是使用 PyQt5 和 requests 实现车票查询工具的详细介绍。

安装 PyQt5 和 requests

在使用 PyQt5 和 requests 实现车票查询工具之前,我们需要先安装 PyQt5 和 requests。可以使用 pip 命令来安装:

pip install PyQt5 requests

创建 GUI 界面

我们可以使用 Qt Designer 工具来创建 GUI 界面。在 Qt Designer 中,我们可以拖拽控件来创建界面,并设置控件的属性和信号槽。创建好界面后,我们可以将其保存为 .ui 文件。

将 .ui 文件转换为 .py 文件

我们可以使用 pyuic5 工具将 .ui 文件转换为 .py 文件。在命令行中执行以下命令:

pyuic5 -o ui_mainwindow.py mainwindow.ui

这将会生成一个名为 ui_mainwindow.py 的 Python 文件,其中包含了我们在 Qt Designer 中创建的界面。

实现车票查询功能

以下是一个实现车票查询功能的示例:

import sys
import requests
from PyQt5.QtWidgets import QApplication, QMainWindow
from ui_mainwindow import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.query_ticket)

    def query_ticket(self):
        from_station = self.lineEdit_from.text()
        to_station = self.lineEdit_to.text()
        date = self.dateEdit.date().toString('yyyy-MM-dd')
        url = f'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={date}&leftTicketDTO.from_station={from_station}&leftTicketDTO.to_station={to_station}&purpose_codes=ADULT'
        response = requests.get(url, verify=False)
        data = response.json()['data']
        for item in data:
            print(item['queryLeftNewDTO']['station_train_code'])

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例中,我们创建了一个名为 MainWindow 的类,继承自 QMainWindow 和 Ui_MainWindow。在 init 方法中,我们调用了父类的 setupUi 方法来设置界面。然后,我们将查询按钮的 clicked 信号连接到了 query_ticket 方法。在 query_ticket 方法中,我们获取了出发站、到达站和日期,并拼接成了查询车票的 URL。然后,我们使用 requests 模块发送了一个 GET 请求,并解析了响应的 JSON 数据。最后,我们遍历了车次信息,并打印出了车次号。

以上是使用 PyQt5 和 requests 实现车票查询工具的详细介绍,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5+requests实现车票查询工具 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • python爬取微信公众号文章

    Python爬取微信公众号文章是一个非常有用的应用场景,可以帮助用户快速获取自己或他人的公众号文章。本攻略将介绍Python爬取微信公众号文章的完整攻略,包括数据获取、数据处理、数据存储和示例。 步骤1:获取数据 在Python中,我们可以使用requests库获取网页数据。以下是获取微信公众号文章页面的示例: import requests url = ‘…

    python 2023年5月15日
    00
  • 深入浅出正则表达式中的边界\b和\B

    以下是“深入浅出正则表达式中的边界\b和\B”的完整攻略: 一、问题描述 在正则表达式中,边界是指一个字符或一组字符的开始或结束位置。\b和\B是正则表达式中用于匹配边界的元字符。本文将详细讲解\b和\B的用法和区别。 二、解决方案 2.1 \b元字符 \b元字符用于匹配单词边界,即单词的开始或结束位置。以下是一些常用的\b元字符的示例: 元字符 描述 \b…

    python 2023年5月14日
    00
  • 利用Python 实现分布式计算

    利用Python实现分布式计算 什么是分布式计算 分布式计算是指将一个计算任务分成若干个小的计算任务,分配给多个计算节点同时计算,从而实现更快速、更高效地完成计算任务的一种计算方式。它不仅可以大幅提升计算速度,还具有更好的容错性和可伸缩性等优势。 分布式计算的实现方法 利用Python实现分布式计算通常可以采用以下方法: 使用Python自带的multipr…

    python 2023年5月19日
    00
  • Python爬虫库BeautifulSoup的介绍与简单使用实例

    BeautifulSoup是一个Python库,用于解析HTML和XML文档,并提供了一些方便的方法来获取和操作文档中的元素。本文将详细讲解BeautifulSoup的介绍与简单使用实例,包括两个示例。 BeautifulSoup的介绍 BeautifulSoup是一个Python库,用于解析HTML和XML文档,并提供了一些方便的方法来获取和操作文档中的元…

    python 2023年5月15日
    00
  • python 实现二叉搜索树的四种方法

    Python 实现二叉搜索树的四种方法 二叉搜索树(Binary Search Tree,简称BST)是一棵二叉树,它具有以下性质: 若左子树不为空,则左子树上所有结点的值均小于它的根节点的值; 若右子树不为空,则右子树上所有结点的值均大于它的根节点的值; 左、右子树分别也为二叉搜索树; 没有键值相等的节点; 因其高效性,在排序、查找等问题中,常常使用二叉搜…

    python 2023年5月13日
    00
  • 在Python中使用NumPy将一个赫米特数列添加到另一个数列上

    当我们需要在Python中进行线性代数计算时,NumPy是一个非常重要的库。本攻略将讲解如何使用NumPy将一个赫米特数列添加到另一个数列上。 步骤1 – 导入NumPy库 在首先我们需要导入NumPy库。在Python中,我们可以使用以下语句导入NumPy: import numpy as np 在这个示例中,我们使用“np”作为NumPy库的别名。这使得…

    python-answer 2023年3月25日
    00
  • python实现代码审查自动回复消息

    下面是详细的攻略: 1. 思路 代码审查自动回复消息的思路可以分为下面几个步骤: 监听需要审查的仓库的pull request事件; 获取pull request中的代码差异; 对代码差异进行审查,判断是否存在问题; 如果存在问题,给出提示并自动回复消息。 我们可以使用Python语言结合GitHub网站API来实现自动回复消息。 2. 准备工作 在开始代码…

    python 2023年5月19日
    00
  • python中的mmap稀疏向量

    【问题标题】:mmap sparse vector in pythonpython中的mmap稀疏向量 【发布时间】:2023-04-07 13:52:01 【问题描述】: 我正在寻找可以映射到内存中的简单稀疏向量实现,类似于numpy.memmap。 不幸的是,numpy 实现只处理全向量。示例用法: vec = SparseVector(‘/tmp/fi…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部