python编写12306窗体抢票软件(一)

python编写12306窗体抢票软件(一)

第一次写博客,拿写过的软件练个手~
12306是学习爬虫的比较好的一个练手网站。本文带你重零开始编写一个python窗体,十分简单,小白进来看哈~这节只说怎么编写窗体界面,下节介绍12306的登录
准备环境:win10 ,python3.5,pycharm

1.先看下最后成果,能够抢票哦

在这里插入图片描述

这是登录界面,用QtDesigner设计的十分方便
在这里插入图片描述
这是登录进来后的界面,查询完余票后,选择乘客,车次,座位,就可以购票了,如果显示有票,就直接点普通预定,预定成功后就会给你的邮箱发送一条通知,然后登录你的12306就可以看到未支付的订单啦!

2.代码介绍

1 界面编写

推荐用PyQt5去写界面,再安装下QtDesigner,就能很方便的设计窗体界面,拖拽按钮什么的,最后转换成.py文件,非常简单。这部分可以自行百度,十分多的教程。
因为我有两个窗体界面,所以写了两个类,在主程序中实例化它们,再添加功能代码

from PyQt5 import QtGui, QtWidgets,QtCore
from apprenace import Ui_Apprenace
from Login import Ui_Login

class Ui_Apprenace(QtWidgets.QWidget,Ui_Apprenace):
    def __init__(self):
        super(Ui_Apprenace, self).__init__()
        self.setupUi(self)
        self.timecount = 0
        self.Logout.clicked.connect(self.logoutEvent)
        self.Check.clicked.connect(self.FindTickets)
        self.Buybtn.clicked.connect(self.BuyTicket)
        self.Autobuyticket.clicked.connect(self.autoBuyticket)
        self.Seatbtn.currentTextChanged.connect(self.ChooseSeat)

    #定义登出按钮的功能
    def logoutEvent(self):
        self.hide()           #隐藏此窗口
        self.log = Ui_Login()
        self.log.show()       #显示登录窗口

    def FindTickets(self):

    def ChooseSeat(self):
       ##省略 
    def FindPeople(self):
       ##省略 
    def BuyTicket(self):
       ##省略 
    def autoFindticket(self):
       ##省略
    def autosubmitorder(self): 购票按钮触发事件
       ##省略

class Ui_Login(QtWidgets.QMainWindow, Ui_Login):
    def __init__(self):
        super(Ui_Login, self).__init__()
        self.setupUi(self)
        self.logbtn.clicked.connect(self.loginEvent)
        self.qucikLog.clicked.connect(self.checkLog)
        self.getpic()
    def checkLog(self):
    #定义登录按钮的功能
    def loginEvent(self):
    def getpic(self):

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    login_show = Ui_Login()
    login_show.show()#界面类实体化
    sys.exit(app.exec_())

窗体界面写好后,能够实现互相跳转后,接下来就可以加入12306抢票的代码啦!

2 QtDseginer和PyUIC安装的一些坑

pyQt5很好安装,pip 命令就可以了
pycharm 点击File>Settings>Tools>External Tools

在这里插入图片描述
点 + 号,然后按照我这个去写
Qtdesigner的
Program: C:\python35\Lib\site-packages\pyqt5-tools\designer.exe

Working directory:C:\python35\Lib\site-packages\pyqt5-tools
在这里插入图片描述
PyUIC的
Program: C:\python35\python.exe
Arguments: -m PyQt5.uic.pyuic F i l e N a m e FileName FileName -o F i l e N a m e W i t h o u t E x t e n s i o n FileNameWithoutExtension FileNameWithoutExtension.py

(这个是最坑的 我这个是正确的,这句话意思就是把.ui文件转换成.py文件)

Working directory:G:\RobTickets(这个路径是你这个.ui文件存放的路径,自己选择)

3 下次我写12306获取验证码和登录的博客!

第一次写,多多关注!感谢,不清楚的可以再底下问我

Python可以通过网络爬虫和自动化操作库来实现12306自动抢票程序。具体的步骤如下: 首先,我们需要了解12306的网站结构和抢票的流程。可以通过查看12306网站的源代码或使用开发者工具来了解网站上的元素和接口。 接下来,我们将使用Python的网络爬虫库,如Requests或Scrapy,来获取12306网站上的车票信息。我们可以发送HTTP请求,获取车站、日期、车次、座位等必要的信息,并解析响应的数据。 然后,我们需要创建一个机制来自动登录12306网站。我们可以使用Selenium库来模拟用户登录过程,填写用户名和密码,并点击登录按钮。 一旦登录成功,我们可以开始搜索并预定车票。我们可以通过构造合适的URL,并发送相关的请求来查询可用的车票。然后,我们可以提取所需的信息,如车次、座位、价格等。 当找到合适的车票后,我们可以使用自动化操作库,如Selenium或Pyautogui,来模拟用户操作完成购票流程。这包括选择座位、填写乘客信息、提交订单等步骤。 最后,我们需要添加异常处理机制来应对可能的网络错误、登录失败或购票失败等情况。我们可以使用try-except语句来捕获异常,并根据需要采取相应的处理措施,如重新尝试抢票、发送通知等。 需要注意的是,使用自动化程序抢票可能违反12306的使用规则。因此,在使用抢票程序之前,我们需要仔细阅读12306的规定,确保自己的行为合法合规。 总之,通过使用Python的网络爬虫和自动化操作库,我们可以实现12306自动抢票程序。这样可以帮助我们更高效地搜索和预定车票,省去手动操作的繁琐过程。但是,在使用此类程序时务必遵守相关规定,避免违反使用规则。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值