要过年了,最新的12306实时监控抢购车票软件已经写好了,这多亏我Python学的好

本文详细介绍了如何使用Python模拟登录12306,进行滑动验证,处理疫情特殊要求,以及自动购票的过程。通过引入相关库,实现了从选择车次、填写信息到锁定车票的全套自动化流程。同时,文章还提到了代码的监控和购票成功后的推送功能,以及在实际运行中可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

 目录

一、效果展示

二、代码详解

1 导入库

2 确定好购票基本信息

3 登录12306

4 模拟滑动滑块

5 处理疫情特殊要求

6 点击购票并填写出发地、目的地、出发时间

7 锁定车票

         三、实现监控购买

         注意

         环境

         代码


大家有没有这种感觉,一到国庆、春节这种长假,抢火车票就非常困难?各大互联网公司都推出抢票服务,只要加钱给服务费就可以增加抢到票的几率。有些火车票代售网点和一些加速买票软件,说你只要给100元服务费就可以优先帮忙抢到票。

本文和你一起探索抢票软件背后的原理。

一、效果展示

自动买火车票

在正式进入代码讲解之前,先来看下本文的实现效果。

如果不是为了演示效果,直接在最后确定阶段加一个延时点击确定,应该不到45秒可以锁定一张票,只要在30分钟之内付款即可。

二、代码详解

本小节会详细解锁抢票软件是如何模拟登录网站,进行自动买票的。为了更清晰地给大家展示,部分代码没有写成函数,直接裸代码运行,让需要买票的朋友可以自己应用软件进行购票。

1 导入库

首先导入本文需要加载的库,如果你有些库还没有安装,导致运行代码时报错,可以在Anaconda Prompt中用pip方法安装。

1

2

3

4

5

6

7

8

9

10

11

  1. ###########################

  2. Python学习交流Q群101677771

  3. ###########################

import json

import time

from captcha import *

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support import wait

from selenium.webdriver.common.keys import Keys

from selenium.common.exceptions import NoSuchElementException

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support import expected_conditions as EC

#导入库

2 确定好购票基本信息

导入库后,在python代码中填写你购票的基本信息。

1

2

3

4

5

6

7

8

9

purpose = 'ADULT'               #购买成人票,如果是学生票,需调整代码

names = ['谢朝阳']              #填写购票人姓名

date = '2021-09-21'             #填写购票日期

start_station = '深圳'          #购票出发站

end_station = '长沙南'          #购票目的站

password = '11234567xyz'        #登录12306的秘密

username ='xiezhaoyang122700'   #登录12306的账号

trains = ['G1004', 'G80', 'G6028', 'G6182', 'G6016'#你想买的班次

#填写基本信息

本文预订的是2021年9月21日从深圳到长沙南的高铁票,你可以根据自己的实际需要进行调整。由于有些班次的时间过早或过晚,买了也很不方便,所以可以在trains中挑选出你满意的班次进行购票。在这里需要提醒大家,我之前在尝试代码时碰到的坑,那就是时间中如果有个位数要在前面填0。比如2021年9月2日,你在填写购票日期date时要写成'2021-09-02',否则在运行代码时日期总是填不进去。

3 登录12306

确定好购票的基本信息后,就可以应用python模拟登录12306了,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

options = webdriver.ChromeOptions()

options.add_argument("--disable-blink-features=AutomationControlled"

browser = webdriver.Chrome(options=options)

browser.maximize_window()

login_url = '中国铁路12306'

#ticket_url = '中国铁路12306'

browser.get(login_url)

time.sleep(0.5)

wait.WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.CLASS_NAME,'login-hd-account'))).click()

input_name = browser.find_element_by_id('J-userName')

input_pd = browser.find_element_by_id('J-password')

input_name.send_keys(username)

input_pd.send_keys(password)

login = browser.find_element_by_id('J-login'<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值