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

yizhihongxing

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日

相关文章

  • Puppeteer使用示例详解

    Puppeteer使用示例详解 Puppeteer是一个Node.js库,它提供了一个高级API来通过DevTools协议控制Chrome或Chromium浏览器。本文将详细讲解Puppeteer的使用示例,包括如何启动浏览器、如何打开网页、如何模拟用户操作等内容。 启动浏览器 以下是一个使用Puppeteer启动浏览器的示例: const puppetee…

    python 2023年5月15日
    00
  • Python3字符串的常用操作方法之修改方法与大小写字母转化

    下面是针对Python3字符串的常用操作方法之修改方法与大小写字母转化的完整攻略: 修改字符串 在Python中,字符串是不可变的,所以不能直接修改字符串,但可以通过以下方式对字符串进行修改操作: 1. 字符串拼接 通过”+”操作符可以对多个字符串进行拼接,生成一个新的字符串。示例代码如下: str1 = "Hello" str2 = &…

    python 2023年6月5日
    00
  • Python中实现对list做减法操作介绍

    Python中实现对list做减法操作介绍 在Python中,列表(List)是一种常用的数据类型,它可以存储多个元素,并且这些元素可以是不同的数据。本文将详细解Python中如何实现对list做减法操作的实现方法包括使用循环和列表推导式两种方法。 方法一:使用循环 使用循环可以实现对做减法操作。例如: list1 = [1, 2, 3, , 5] list…

    python 2023年5月13日
    00
  • 如何利用python执行txt文件中的代码

    利用Python执行txt文件中的代码需要使用流程如下: 打开txt文件并读取其中的代码 将读取到的代码解析为Python可执行的代码 执行代码并返回执行结果 下面是详细的步骤和示例说明。 一、打开txt文件并读取代码 使用Python中的open函数来打开txt文件,并利用read方法读取其中的代码,代码如下: with open(‘example.txt…

    python 2023年5月18日
    00
  • python实现的简单RPG游戏流程实例

    好的。首先,我们需要了解什么是RPG游戏。简单来说,RPG游戏是指角色扮演游戏,玩家扮演一个或多个角色,在游戏中进行冒险、战斗、探险等操作,并通过完成任务获得经验、金币等奖励,提升角色的属性和能力,以挑战更高难度的关卡。 下面,我们来讲解如何使用Python实现一个简单的RPG游戏。整个游戏的主要流程如下: 初始化角色 游戏开始时,需要初始化玩家角色,包括角…

    python 2023年5月19日
    00
  • Python初学者需要注意的事项小结(python2与python3)

    Python初学者需要注意的事项小结(python2与python3) Python是一门非常适合初学者学习的编程语言,在学习的过程中,初学者需要注意一些事项,尤其对于Python2与Python3版本的区别需要特别注意。在这里,我们来总结一下初学者需要注意的事项。 注意Python版本 Python2和Python3有一些不同之处,其中最主要的不同就在于P…

    python 2023年5月14日
    00
  • Python保存MongoDB上的文件到本地的方法

    下面是Python保存MongoDB上的文件到本地的方法的完整实例教程,包含两个示例: 环境配置 首先需要安装pymongo和gridfs库,可以使用pip进行安装: pip install pymongo pip install gridfs 示例1:保存一张图片文件 这个示例展示了如何从MongoDB中读取一个图片文件,并将其保存到本地。首先,假设Mon…

    python 2023年5月13日
    00
  • python3获取当前目录的实现方法

    要获取当前目录路径,可以使用Python内置的os模块。下面是获取当前目录的实现方法的完整攻略: 使用os模块获取当前目录 import os cwd = os.getcwd() print(cwd) 上述代码使用了os模块的getcwd()函数获取当前目录,并且将结果赋值给cwd变量,然后使用print()函数输出cwd变量的值。这样就可以获取当前目录的路…

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