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标准库之zipfile和tarfile模块的使用

    Python标准库之zipfile和tarfile模块的使用攻略 简介 压缩文件在网页和文件传输中是很常见的,很多时候我们需要用到Python对压缩文件的操作。Python标准库中提供了两个模块zipfile和tarfile,可以用来读取、写入、解压缩、压缩zip、tar和其他常见的压缩格式文件。 本篇攻略将介绍zipfile和tarfile模块的使用方法,…

    python 2023年6月3日
    00
  • Python测试框架pytest高阶用法全面详解

    Python测试框架pytest高阶用法全面详解 本文将详细讲解Python测试框架pytest的高阶用法,并提供两个示例说明: 测试用例的自定义标记及执行 测试用例的参数化 1. 测试用例的自定义标记及执行 在pytest中,我们可以为测试用例添加自定义标记,以便在测试用例执行时控制用例的执行顺序、分组执行,或执行特定标记的测试用例等操作。下面是一个使用p…

    python 2023年5月14日
    00
  • 使用python实现接口的方法

    下面就是使用Python实现接口的方法的完整实例教程。 什么是API接口? 首先,我们来了解一下什么是API接口。API(Application Programming Interface)即应用程序编程接口,它定义了一系列用于软件应用程序之间相互通信的规范。 在Web开发中,API通常指的是Web接口,即提供给使用者(通常是其他的应用程序)访问其提供的服务…

    python 2023年5月13日
    00
  • Python取读csv文件做dbscan分析

    下面是Python取读csv文件做dbscan分析的完整攻略。 1. 确定分析目的 在进行数据分析前,我们需要确定分析的目的和问题,以确保分析结果的准确性和实用性。在本文中,我们假设已经明确了分析目的为对csv文件中的数据进行聚类,找出其中相似的数据点,以便进一步的分析和应用。 2. 准备工作 在进行数据分析前,我们需要进行一些必要的准备工作,主要包括以下几…

    python 2023年6月3日
    00
  • python中编写函数并调用的知识点总结

    当我们在Python中编写一些复杂的程序时,我们需要对代码进行模块化和重用,函数是实现这一目的的好方法。在本文中,我们将讲解如何编写Python函数并调用它们的知识点。 函数的定义 一个函数就是一个可以执行特定任务的有用代码块。在Python中,我们可以使用“def”关键字来定义函数,其基本语法如下: def function_name(arguments)…

    python 2023年6月5日
    00
  • Python日期时间处理库dateutil详解

    Python日期时间处理库dateutil详解 介绍 Python内置模块datetime提供了一些功能强大的日期和时间处理方法,但不足以满足所有需求。一个Python库dateutil提供了更加易用的日期时间处理方法,如解析日期时间字符串、计算日期之间的差值和调整日期等。 安装 使用pip安装dateutil库: pip install python-da…

    python 2023年6月2日
    00
  • Python使用MD5加密字符串示例

    下面是“Python使用MD5加密字符串示例”的完整攻略。 具体步骤 步骤1:导入hashlib 首先,我们需要导入Python的hashlib模块,以便使用其中的MD5加密功能。在Python中,可以通过以下方式导入hashlib模块: import hashlib 步骤2:创建MD5加密对象 要使用MD5加密字符串,我们需要创建一个MD5加密对象。创建方…

    python 2023年6月2日
    00
  • 无法使用 Matplotlib – Ubuntu 10.10 和 Python 3.2

    【问题标题】:Unable to use Matplotlib – Ubuntu 10.10 and Python 3.2无法使用 Matplotlib – Ubuntu 10.10 和 Python 3.2 【发布时间】:2023-04-07 21:29:01 【问题描述】: 我在 Ubuntu 10.10 i386(32 位)上运行 python3.2。…

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