PyQt5爬取12306车票信息程序的实现

PyQt5爬取12306车票信息程序的实现

本文将详细讲解如何使用PyQt5和Python爬取12306车票信息。我们将从环境配置开始,一步步地介绍如何使用PyQt5和Python实现爬取12306车票信息的程序。

环境配置

在使用PyQt5和Python爬取12306车票信息之前,我们需要先进行环境配置。以下是环境配置的步骤:

  1. 安装Python

可以在Python官网下载Python的安装包,并按照提示进行安装。

  1. 安装PyQt5

可以使用pip命令来安装PyQt5:

pip install PyQt5
  1. 安装requests和BeautifulSoup

可以使用pip命令来安装requests和BeautifulSoup:

pip install requests
pip install beautifulsoup4

程序实现

在环境配置完成之后,我们可以使用PyQt5和Python实现爬取12306车票信息的程序。以下是程序实现的步骤:

  1. 导入模块
import sys
import requests
from bs4 import BeautifulSoup
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout

在上面的示例中,我们导入了sys、requests、BeautifulSoup和PyQt5.QtWidgets等模块。

  1. 创建窗口
class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('12306车票信息查询')
        self.setGeometry(100, 100, 400, 200)

        self.label = QLabel('请输入车次:')
        self.lineedit = QLineEdit()
        self.button = QPushButton('查询')
        self.button.clicked.connect(self.search)

        vbox = QVBoxLayout()
        vbox.addWidget(self.label)
        vbox.addWidget(self.lineedit)
        vbox.addWidget(self.button)

        self.setLayout(vbox)

在上面的示例中,我们创建了一个名为“MainWindow”的窗口,并添加了一个标签、一个文本框和一个按钮。

  1. 实现查询功能
    def search(self):
        train_no = self.lineedit.text()
        url = 'https://search.12306.cn/search/v1/train/search?keyword=' + train_no
        response = requests.get(url)
        soup = BeautifulSoup(response.text, 'html.parser')
        result = soup.find_all('div', {'class': 'search-item'})
        for item in result:
            print(item.text)

在上面的示例中,我们实现了查询功能。当用户点击查询按钮时,程序将获取用户输入的车次号,并使用requests库向12306网站发送请求。接着,我们使用BeautifulSoup库解析HTML代码,并提取车票信息。最后,我们将车票信息输出到控制台。

  1. 运行程序
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例中,我们使用QApplication类创建了一个应用程序,并将窗口显示出来。最后,我们使用sys.exit方法退出应用程序。

示例

以下是一个完整的示例,演示如何使用PyQt5和Python爬取12306车票信息:

import sys
import requests
from bs4 import BeautifulSoup
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('12306车票信息查询')
        self.setGeometry(100, 100, 400, 200)

        self.label = QLabel('请输入车次:')
        self.lineedit = QLineEdit()
        self.button = QPushButton('查询')
        self.button.clicked.connect(self.search)

        vbox = QVBoxLayout()
        vbox.addWidget(self.label)
        vbox.addWidget(self.lineedit)
        vbox.addWidget(self.button)

        self.setLayout(vbox)

    def search(self):
        train_no = self.lineedit.text()
        url = 'https://search.12306.cn/search/v1/train/search?keyword=' + train_no
        response = requests.get(url)
        soup = BeautifulSoup(response.text, 'html.parser')
        result = soup.find_all('div', {'class': 'search-item'})
        for item in result:
            print(item.text)

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

在上面的示例中,我们创建了一个名为“MainWindow”的窗口,并添加了一个标签、一个文本框和一个按钮。当用户输入车次号并点击查询按钮时,程序将获取车票信息并输出到控制台。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5爬取12306车票信息程序的实现 - Python技术站

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

相关文章

  • 使用python加密主机文件几种方法实现

    综合考虑效率、安全性和易用性,常见的使用Python加密主机文件的方法有以下几种: 1. 使用PyCryptodome库进行加密 PyCryptodome是Python中基于Crypto库的强化版本,提供了丰富而高效的加解密操作。在使用之前需要安装该库: pip install pycryptodome 接着,可以使用如下代码进行加密操作: import o…

    python 2023年6月2日
    00
  • Python全栈之路正则函数

    Python全栈之路正则函数 正则表达式是一种强大的文本处理工具,可以用于字符串匹配、替换、分割等操作。在Python中,我们可以使用re模块来实现正则表达式的相关操作。本攻略将详细讲解Python全栈之路正则函数,包括正则表达式的基本语法、常用函数的用法、匹配模式、替换操作、分割操作等内容。 正则表达式的基本语法 正则表达式是由普通字符和特殊字符组成的字符…

    python 2023年5月14日
    00
  • Python包装之对象处理

    下面是详细讲解“Python包装之对象处理”的完整攻略。 目录 什么是包装器 如何实现一个装饰器 装饰器的使用场景 示例说明 示例一:计算函数调用时间 示例二:缓存函数返回值 什么是包装器 包装就是在不改变原有代码的基础上,以对现有函数进行增强或改进的方式来扩展其功能,这种实现方式就是所谓的包装器。 包装器的基本思路是:对传入的函数进行一定程度的修改,使其变…

    python 2023年6月3日
    00
  • python实现批量移动文件

    下面就是“Python实现批量移动文件”的完整攻略: 准备工作 使用Python实现批量移动文件,需要先安装Python,并了解相关的文件操作函数,例如:os、shutil等。 实现步骤 确定要移动的文件所在的文件夹路径和目标文件夹路径,使用os模块的listdir函数获取目录下的所有文件名。 遍历文件夹中的所有文件:对于每一个文件,使用os模块的isfil…

    python 2023年6月5日
    00
  • 用Python中的NumPy在点(x,y,z)上评估一个具有4D数组系数的3D拉盖尔数列

    要在点 (x, y, z) 上评估一个具有 4D 数组系数的 3D 拉盖尔数列,我们可以使用 Python 中的 NumPy 库提供的 polyval 函数。使用 polyval 函数需要指定待求解多项式的系数以及对应自变量的值,然后函数会返回多项式在给定自变量处的值。 以下是使用 Python 中的 NumPy 求解 3D 拉盖尔数列的步骤: 导入 Num…

    python-answer 2023年3月25日
    00
  • 对python中的 os.mkdir和os.mkdirs详解

    当我们写 Python 程序时,可能会需要创建文件夹,Python 标准库中的 os 包提供了两种创建文件夹的函数:os.mkdir 和 os.mkdirs。 os.mkdir 和 os.mkdirs 的区别 os.mkdir(path):只能创建单级目录,如果要创建多级目录则会抛出 OSError 异常; os.mkdirs(path, mode=0o77…

    python 2023年6月2日
    00
  • python excel转换csv代码实例

    来讲一下Python将Excel转换为CSV文件的代码实例。 首先,我们需要安装两个Python库:pandas和openpyxl。这两个库分别用于读取Excel文件和将数据转换为CSV格式。 在安装完成后,在Python脚本中引用这两个库: import pandas as pd import openpyxl 接下来,我们用pandas读取Excel文件…

    python 2023年5月14日
    00
  • Python实现求两个数组交集的方法示例

    下面我将为你详细讲解“Python实现求两个数组交集的方法示例”的完整攻略。 准备工作 在开始实现求两个数组交集的过程之前,我们需要先准备一些工作。具体来说,我们需要: 安装Python:在开始任何Python项目之前,我们需要首先安装Python。你可以在Python官网上下载并安装适合你的版本,推荐使用最新版Python 3.x。 准备相关Python库…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部