{"id":15521881,"url":"https://github.com/yeautyye/train-ticket-reaper","last_synced_at":"2025-03-31T07:08:28.628Z","repository":{"id":108935089,"uuid":"128604805","full_name":"YeautyYE/train-ticket-reaper","owner":"YeautyYE","description":"本项目已关闭","archived":false,"fork":false,"pushed_at":"2024-01-31T13:51:18.000Z","size":100,"stargazers_count":247,"open_issues_count":13,"forks_count":100,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-24T05:09:04.428Z","etag":null,"topics":["train"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YeautyYE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-08T06:10:00.000Z","updated_at":"2025-03-10T08:45:38.000Z","dependencies_parsed_at":"2024-10-31T06:02:06.928Z","dependency_job_id":"9a0cf895-e22b-48cb-b3e3-536dc0f8022c","html_url":"https://github.com/YeautyYE/train-ticket-reaper","commit_stats":null,"previous_names":["yeautyye/train-ticket-reaper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YeautyYE%2Ftrain-ticket-reaper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YeautyYE%2Ftrain-ticket-reaper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YeautyYE%2Ftrain-ticket-reaper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YeautyYE%2Ftrain-ticket-reaper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YeautyYE","download_url":"https://codeload.github.com/YeautyYE/train-ticket-reaper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246429484,"owners_count":20775807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["train"],"created_at":"2024-10-02T10:38:21.723Z","updated_at":"2025-03-31T07:08:28.595Z","avatar_url":"https://github.com/YeautyYE.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://img.shields.io/badge/train_ticket-reaper-lightgrey.svg?colorA=d9d0c7\u0026colorB=9fe0f6)\n\n### 本项目已关闭\n\n\u003e 由于对应站点限制相同ip的访问频率,导致不能快速的进行车票查询.\n\u003e\n\u003e 如需使用本项目进行抢票,可自行集成代理ip池即可 (但这样比较麻烦,建议直接使用第三方抢票app)\n\u003e\n\u003e 如之后有较好的解决方案,将重新开启更新\n\n\n\n\n\n### 吐槽\n\n---\n\u003e在正式开始文档前，一定要深深的吐槽一波！！！\n\u003e想当年，我也是一个天真的抢票族，常年用去哪儿网的抢票。\n\u003e平常抢个票感觉还不错，但一到节假日！他就开始！掉！链！子！！！\n\u003e前端页面写着，95%成功率抢票成功，我天真的选了好几个班次。结果发现！我被前端的95%骗了！（虽然我也知道那就是随便写上去的数字）\n\u003e然后我的心情就*\u0026……@*\u0026#！*@……（）(*@\u0026$(*）！（@\u0026%（）\u0026*！（￥——*\n\u003e实在没办法，只能自己手动撸一段抢票代码，哎 （手动滑稽）\n\n\u003e吐槽归吐槽，去哪儿网毕竟是免费给大家用的，也不可能太快嘛~ 你懂的~ 所以还是要谢谢去哪儿网那些年帮我抢过的票票~\n\n---\n\n### Q\u0026A\n- Q：这个项目是抢\u003ckbd\u003ewww.12306.cn\u003c/kbd\u003e(中国铁路客户服务中心)的票吗？\n- A：不是。这个是抢\u003ckbd\u003e12306.com\u003c/kbd\u003e(点点出行)的票。\n\n- Q：为什么要抢点点出行的票，而不是中国铁路客户服务中心？\n- A：\u003ckbd\u003ewww.12306.cn\u003c/kbd\u003e(中国铁路客户服务中心)里面抛开登陆验证不说，之后的各种数据获取足以让人头痛。要做成纯HTTP请求难度非常大，所以目前大部分都是以Selenium或Chrome脚本的形式在\u003ckbd\u003ewww.12306.cn\u003c/kbd\u003e进行抢票。\n\n- Q：\u003ckbd\u003e12306.com\u003c/kbd\u003e(点点出行)是个什么网站，会不会有风险？\n- A：这个网站其实就和携程、去哪儿网一样是第三方票务代售，他也是在国内备案过的。而使用\u003ckbd\u003e12306.com\u003c/kbd\u003e估计他只是想从\u003ckbd\u003ewww.12306.cn\u003c/kbd\u003e偷偷的获取一部分流量。\n\n- Q：在这里抢票是否会产生除了票价外其它费用？\n- A：不会，价格和\u003ckbd\u003ewww.12306.cn\u003c/kbd\u003e一样的。\n\n## 项目介绍\n![](https://img.shields.io/badge/build-passing-brightgreen.svg) ![](https://img.shields.io/badge/downloads-190KB-brightgreen.svg) ![](https://img.shields.io/badge/jdk-1.8-blue.svg) ![](https://img.shields.io/badge/springboot-2.0.1-blue.svg)   ![](https://img.shields.io/badge/maven-3.3.9-blue.svg)  ![](https://img.shields.io/badge/IDEA-2017.2.3-blue.svg)\n- `train-ticket-reaper` 的目标是以简单的使用方法、和高效的抢票让小伙伴们安心的抢到回家的票\n- 抢票的原理是模拟http请求调用\u003ckbd\u003e12306.com\u003c/kbd\u003e（非\u003ckbd\u003ewww.12306.cn\u003c/kbd\u003e）API进行查询、下单、确认等（没有付款步奏，保证小伙伴钱包的安全，抢到后自行登陆\u003ckbd\u003ehttp://12306.com/\u003c/kbd\u003e付款即可）。\n- 没有复杂的环境配置和依赖，只需要把该填的参数填上，run一下就可以一直放着等他抢到票为止\n- 提供4种不同的抢票模式（极速模式、丧心病狂模式、为了抢票不要命模式、无脑下单模式），后两种非万不得已，不建议使用\n\n## 快速启动 （2种启动方式，选一种即可）\n\n1. IDE启动\n- 导入项目并在配置文件中填入信息\n\n![](https://i.imgur.com/oWayV9W.png)\n- 启动项目\n\n![](https://i.imgur.com/qQqTDSd.png)\n- 佛性的等待，并在抢票成功后，登陆\u003ckbd\u003ehttp://12306.com/\u003c/kbd\u003e进行付款\n\n---\n\n2. jar包启动\n- 进入源代码根目录\n- 使用maven进行打包\n```\nmvn clean package -DskipTests\n```\n- 运行命令\n```\njava -jar train-ticket-reaper --from-station=*** --to-station=*** --just-gd=true=*** --dept-date=*** --seat-name=*** --account=*** --password=*** --passenger-name=*** --passport-no=*** --sex=* --contact-mobile=*** --contact-name=*** --timeRange=*** --webhook-token=*** --mode=*\n```\n- 参数说明\n```\n######### [车次信息] #########\n#出发站 如 深圳\nfrom-station =\n#目的站 如 上海\nto-station =\n#是否只看高铁/动车 (非必填，默认值 true)\njust-gd =\n#车次日期 如 2018-04-09\ndept-date =\n#时间范围 （火车发车时间范围限制，不填默认不限制） 如：10:30-14:50 注意冒号使用英文的:\ntimeRange =\n#座位名称 如：二等座，一等座，无座\nseat-name =\n\n######### [登陆信息] #########\n#登陆用户名\naccount =\n#登陆用户密码\npassword =\n\n######### [乘客信息] #########\n#乘客姓名\npassenger-name =\n#乘客身份证号码\npassport-no =\n#乘客性别 男M 女F\nsex=M\n\n######### [联系人信息] #########\n#联系人号码 如 13888888888\ncontact-mobile =\n#联系人姓名 如 张三\ncontact-name =\n\n######### [钉钉通知] ######### （非必填）\n#钉钉自定义机器人的webhookToken，不使用钉钉机器人进行通知则不填 如 https://oapi.dingtalk.com/robot/send?access_token=4a637ce2b7ce6c0be48fc3388265345ee1cd4ea036ce705112ed618924f987aa\nwebhook-token =\n\n######### [抢票模式] ######### （非必填，不填使用默认值）\n#1 极速模式  2 丧心病狂模式  3 为了抢票不要命模式  (默认1) 4 无脑下单模式\nmode =\n```\n- 佛性的等待，并在抢票成功后，登陆\u003ckbd\u003ehttp://12306.com/\u003c/kbd\u003e进行付款\n\n\n## 通知方式\n\n1.钉钉自定义机器人（如果使用阿里巴巴的钉钉）\n- 在application.properties中的webhook-token填上钉钉机器人的webhook（一串url）即可\n- 不填写则默认不使用钉钉机器人进行通知\n- 钉钉机器人开发文档 ：https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.mQpC3N\u0026treeId=257\u0026articleId=105735\u0026docType=1\n\n2.佛性通知\n- 当抢票成功后，程序会自动退出（不用担心资源浪费等问题）。\n- 当下单成功的15分钟后，\u003ckbd\u003e12306.com\u003c/kbd\u003e会主动发信息到你填的 联系人号码 上（因为\u003ckbd\u003e12306.com\u003c/kbd\u003e想催你给钱啊~）\n- 所以不用担心抢票成功后又被超时取消\n\n## 抢票模式\n1.极速模式 \n- 只需按照快速启动，即时极速模式。\n- 默认每秒检测一次（从早上6点到24点）。\n- 遇到有位置，占座时直接 while(true) 进行占座请求。普通浏览器5秒一次占座\n\n2.丧心病狂模式\n- mode设为2\n- 每秒平均10次检测\n- 占座也是 while(true)\n\n3.为了抢票不要命模式\n- mode设为3\n- 在 丧心病狂 模式基础上使用100条线程运行\n- 占座也是 while(true)\n\n4.无脑下单模式\n- mode设为4\n- 不进行票数检测\n- 对符合要求的车次直接进行下单请求\n\n\n\n## Tips\n\t列车发车时间的前一天晚上，19:30-22:00，通常会比较多人退票。这时候抢票成功概率非常搞。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeautyye%2Ftrain-ticket-reaper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyeautyye%2Ftrain-ticket-reaper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeautyye%2Ftrain-ticket-reaper/lists"}