首页 » 软件开发 » 还没买到票?亲测程序员抢票黑科技(还没买到程序员设置车次)

还没买到票?亲测程序员抢票黑科技(还没买到程序员设置车次)

雨夜梧桐 2024-07-24 04:43:25 0

扫一扫用手机浏览

文章目录 [+]

最好用的12306

春节临近,各位同学们都抢到回家的火车票了吗?

市面上的抢票软件琳琅满目,但是好像效果一般,加速包就要花费50以上,还很大概率抢不到。
不妨试试python大法,用程序员的思路来抢票!

还没买到票?亲测程序员抢票黑科技(还没买到程序员设置车次) 软件开发
(图片来自网络侵删)

下面,我就要介绍这两款炙手可热的GitHub开源项目。
排在GitHub热榜第一的项目是 12306,他以自动登录用户账户,能卡点抢票,也能捡漏候补,抢到票后会通过邮件进行通知。
排在热榜第2位的,叫做 py12306,特点是可以通过图形界面操作,配置更简单,容易上手使用。

之前我已经介绍过py12306 (

过年抢票?不妨试试程序员的手段

),但是经过我测试,综合对比了windows平台的抢票神器“分流抢票”、py12306、12306,最终得出的结论是12306最好用。

(后台回复 “ 12306 ” 下载该项目)

12306可以本地保存开发者的12306图片识别模型,我们可以在本地完成图片识别码的登录过程,并且不像分流抢票一样在下单的时候,需要手动滑动模块。
当然缺点也是有的,设置较复杂新手望而却步,自动获取cookie经常失败,因此需要手动填写。

但是没关系,跟着我下面的步骤一定能成功。

操作步骤

下载项目

首先需要从Github下载项目并且下载图片识别模型,模型需要保存在项目根目录中。

(如果Github下载太慢可以后台回复 “ 12306 ” 下载项目和模型)

//下载项目git clone https://github.com/testerSunshine/12306cd 12306//下载模型https://github.com/testerSunshine/12306model.git

然后安装依赖项,建议以root用户安装。

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

配置文件

配置文件 tickerconfig.py 是最关键的一步,购票信息用户名密码都在这个文件里。
由于配置项较多,这里只列出关键细节即可满足需求。

1.首先我们需要设置刷票模式TICKET_TYPE,1=刷票 2=候补+刷票,这里推荐设置为2,如果已有候补订单则为1。

# 刷票模式:1=刷票 2=候补+刷票TICKET_TYPE = 1

2.然后需要设置购票日期STATION_DATES,如果多个日期需要逗号分隔。

# 出发日期(list) "2018-01-06", "2018-01-07"STATION_DATES = [ "2020-01-21", "2020-01-22", "2020-01-23"]

3.设置购买的车次STATION_TRAINS。

# 填入需要购买的车次(list),"G1353"# 修改车次填入规则,注:(以前设置的车次逻辑不变),如果车次填入为空,那么就是当日乘车所有车次都纳入筛选返回# 不填车次是整个list为空才算,如果不是为空,依然会判断车次的,这种是错误的写法 [""], 正确的写法 []STATION_TRAINS = [‘Z96’]

4.设置出发城市FROM_STATION和到达城市TO_STATION。

# 出发城市,比如深圳北,就填深圳就搜得到FROM_STATION = "上海"# 到达城市 比如深圳北,就填深圳就搜得到TO_STATION = "太原"

5.设置要购买的坐席种类SET_TYPE,可以设置多种类型逗号分隔。

SET_TYPE = ["二等座","硬卧","软卧"]

6.设置乘车人TICKET_PEOPLES。

# 乘车人(list) 多个乘车人ex:# "张三",# "李四"TICKET_PEOPLES = ["王五"]

7.设置12306的账户名USER和密码PWD。

# 12306登录账号USER = "xxx"PWD = "password"

8.开放抢票时间根据车次填入,可以提前几秒,比如下午一点开始抢票,则填入OPEN_TIME = “12:59:55” 。
捡漏模式忽略。

# 预售放票时间, 如果是捡漏模式,可以忽略此操作OPEN_TIME = "12:29:57"

9.设置cookie,这是最关键的一步,建议设置为3。

# 1=使用selenium获取devicesID# 2=使用网页端/otn/HttpZF/logdevice获取devicesId,这个接口的算法目前可能有点问题,如果登录一直302的请改为配置1# 3=自己打开浏览器在headers-Cookies中抓取RAIL_DEVICEID和RAIL_EXPIRATION,这个就不用配置seleniumCOOKIE_TYPE = 3

接着需要手动设置后面的两个参数RAIL_EXPIRATION和RAIL_DEVICEID,建议从Chrome浏览器操作。

# 如果COOKIE_TYPE=3, 则需配置RAIL_EXPIRATION、RAIL_DEVICEID的值RAIL_EXPIRATION = "1577034103293"RAIL_DEVICEID = "CDno29Erc_Pf3FSXb4dzq-Op64EhWrsi5yUZKVIKR1MAfYo2qFlCeXD8VkexY7_1qg-ClV-fE8j9jgVlPZxRh3wVc2iqLe_5A8sdr62qZx4B22JPF8lFCjpgTKZ5ODW90HJd5tiQsJ1KR9nOqHRxHj1FT5LEIwfw"

关于这两个参数的获得,需要先登录12306官https://www.12306.cn/index/,然后点击网站地址左边的“锁形”图标,在选择弹窗中的Cookie选项。

看到RAIL_EXPIRATION和RAIL_DEVICEID两个参数,点击它,将内容里的一串字符复制到配置文件中。
将这两个参数复制分别设置在配置文件中,基本设置大功告成!

启动项目

1.启动前执行命令先筛选cdn,这直接影响抢票。

python3 run.py c

2.然后启动服务!

python3 run.py r

打印出登录成功和车次信息后,开始抢票。
需要注意的是,抢票成功后需要自己登陆12306支付,不能自动支付,30分钟有效期。

下面是我的购票成功信息。

微信推送

如果担心抢到票但是没有及时发现,可以登陆Server酱设置微信推送提醒http://sc.ftqq.com/3.version,按照页面提示操作即可。

关注公众号,完成绑定之后,查找到自己的SCKEY,并且复制设置在配置文件中,配置完成,购票成功后便会及时收到微信推送了!

最后祝各位 Coder 都可以抢到想要的车票!

关注并后台回复 “面试” 或者 “视频”,

即可免费获取最新2019BAT

大厂面试题和大数据微服务视频

您的分享和支持是我更新的动力

·END·

后端开发技术

追求技术的深度

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读5 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0