logo

ScriptCat

  • 首頁
  • 社群
  • 腳本列表
  • 瀏覽器擴充功能
  1. /
  2. 腳本市場
  3. /
  4. 12306 抢票助手 Pro
  • 首頁
  • 程式碼
  • 回饋
  • 評分
  • 版本列表
油猴中文網
腳本貓
GitHub
管理日志
服務協議
隱私政策
免責聲明

© 2022-至今 ScriptCat. All rights reserved.

版本歷史

查看所有已發佈的版本,包括正式版本和預發佈版本。您可以安裝任何版本或查看其原始碼。
共 23 個版本正式 23預發佈 0
顯示第 1-10 項,共 23 項
2.1.12最新版本
8 天前

載入中…
安裝此版本
2.1.10
9 天前

載入中…
安裝此版本
2.1.9
10 天前

載入中…
安裝此版本
2.1.8
10 天前

載入中…
安裝此版本
2.1.6
11 天前

載入中…
安裝此版本
2.1.5
13 天前

載入中…
安裝此版本
2.1.3
13 天前

載入中…
安裝此版本
2.1.1
15 天前

載入中…
安裝此版本
2.1.0
15 天前

載入中…
安裝此版本
2.0.11
16 天前

載入中…
安裝此版本
  • 第 1-10 項,共 23 個版本
  • 1
  • 2
  • 3
  • 10 / page
    Go toPage

v2.1.12:两处修正

【1】查票提示不再自相矛盾 群友日志里出现过这种:主提示说「C2387 可预订但无票」,明细却写着「一等座=9 二等座=有」。根因是那句文案从不检查到底有没有票,只要车次号对上就一律说"无票"。 现在会如实说清:这趟有票,但它的乘车区间是 泗县东→合肥西,和你填的不是同一个站,按默认设置跳过了(要接受同城其它车站就勾面板上那个开关,勾完记得重新点「开始抢票」)。

【2】跳转到支付/订单页后,日志尽量留全 抢到票跳转之后,面板日志有时只剩新页面的(技术日志是完整的)。现在跳转前会把面板日志也抄进技术日志一份,点「复制日志」至少能看到跳转前发生了什么。

顺带确认一件事:无座那个修复是有效的。群友最新的无座日志里,下单已经能走到最后一步(不再报「硬座仅剩0张」),失败原因是「余票不足」——那是票在那 1 秒里被抢走了,不是脚本的问题。

另外两处小修:同一个车次号有多趟时(12306 会把同城车站的车次一并返回),会优先解释"有票的那趟",不再拿没票的第一趟糊弄人;「你有一笔票还没支付」这条提示点掉之后就算处理完了,不会再反复弹。

v2.1.10:抢到票却以为失败的问题,修了

【1】票抢到了,却提示登录失效、你以为白抢了(群友真实踩到的) 抢到票之后脚本要跳去「未完成订单」页,而跳转需要登录态——抢票最后那几秒恰恰是登录态最容易失效的时候(刚打完一波高频请求)。跳过去只看到登录页,可票其实早就在账号里了,未支付订单 30 分钟就没了。 现在三道保险:下单成功先把订单信息存下来;跳转前确认登录态,失效就不跳,直接把订单号和"去哪儿支付"怼到脸上(横幅+声音+通知);就算你刷新或关了页面,下一个页面加载时还会再提醒一次。

【2】一开抢就掉线,只写一行日志没人看得见 现在会弹横幅并响报警声,一直响到你处理。

【3】顺手做的 起售窗口查票超时 3 秒放宽到 5 秒(整点 12306 慢,3 秒会误杀能成功的请求);下单重试加随机抖动;重启冷却存本地(刷新也拦得住连着重启);查票接口连续被拒时循环轮换(不再只换一次就卡死);掉线判定更准;多条提示不再互相覆盖(最多并排 3 条);起售时间核对会重试(不再一次抖动就放弃);候补遇到临时拒绝(系统忙/稍后重试)会隔几轮再试一次,账号级拒绝仍然只报一次。

v2.1.9:上一版的提速没生效,修好了

【1】查票直连(v2.1.8 说做了,其实没做成) 上一版说"查票少走一个来回",群友的日志证明没生效:探测跳转的方式在浏览器里拿不到跳转地址(返回的状态码是 0),所以一直在用老地址、每轮照样多走一次往返。现在改成按浏览器允许的方式取最终地址,这回是真直连了。

【2】两个买错票的 bug(已修,v2.1.8 起生效,群友日志已实证) 抢到的不是你填的车站:12306 查票会把同城其它车站的车次一起返回,以前"没有精确匹配就用同城其它站兜底",于是抢到了广州白云的票,人在广州南上不了车。现在默认只买你填的那个站,并在日志里说明跳过了几趟;愿意自己换站过去坐的,勾「接受同城其它车站」。 勾「无座」下单必失败:「无座」和「硬座」共用席别码 1,但票额是两个字段,传 1 会被当成硬座校验。现改用 WZ,被拒时自动退回 1 重试。

【3】日志里的 [Probe] 行 记每轮的并发数、失败数、间隔、耗时,用来判断整点该不该更猛地重试。只进技术日志。

v2.1.8:修两个会买错票的 bug + 查票提速

【1】抢到的不是你填的车站 12306 查票会把同城其它车站的车次一起返回(实测查「广州南→长沙南」返回 275 趟,其中 136 趟是从广州北/广州白云/广州等站出发的)。以前"没有精确匹配就用同城其它站兜底",于是抢到了广州白云的票,人在广州南上不了车。现在默认只买你填的那个站,并在日志里说明跳过了几趟;愿意自己换站过去坐的,勾「接受同城其它车站」。

【2】勾「无座」下单必失败 「无座」和「硬座」在 12306 里共用席别码 1,但票额是两个字段。传 1 被当成硬座校验,所以无座有票也回你「硬座仅剩0张」。现改用 WZ,被拒时自动退回 1 重试。

【3】查票少走一个来回 12306 把查票接口 302 跳到新地址,每轮都多走一个往返。改成启动时探一次真实地址后直连。探不到也不影响抢票。

【4】日志多了 [Probe] 行 记每轮的并发数、失败数、间隔、耗时,用来判断整点该不该更猛地重试。只进技术日志。

v2.1.6:加了「选座偏好」,下单前把要买的东西写清楚

  1. 选座(默认不勾 = 还是系统自动分配) 勾 A/B/C/D/F 就行,勾几个就得有几个人,数量和乘车人数不一致不让开始(这条是 12306 自己的规矩)。 不同席能选的字母不一样:二等座 A/B/C/D/F,一等座 A/C/D/F,商务座 A/C/F。 部分车次不支持选座,遇到这种车次脚本会自动退回随机分配,不会因为一个选座偏好把整单搞砸。 联程下单暂不支持选座——它那边的参数格式是另一套,没按它的格式拼之前不硬塞。

  2. 下单前信息摊开写 以前只有一句「车次 + 席别」,现在会写清:车次、乘车日期、实际区间(中文站名)、席别、人数、选的是哪几个座还是自动分配。抢到的是哪一段,一眼能看见。

  3. 车次区间核对 命中的车次如果实际乘车区间和你填的不完全一致,会给你一句提示。放心,只提示不拦:12306 查票用的站码有时不等于实际乘车站码(同城多站就是这样),按站码一刀切会把能抢的车次全放过。

不勾选座的话,行为跟 2.1.5 一模一样,老用户不用改任何设置。

v2.1.5:联程下单修好了,正式转正(去掉「实验」标签)

修的是几个真 bug:

  1. 联程的 oldPassengerStr 根本不是乘客串,是「每段席别+区间」。传错只会收到一句笼统的「系统忙」,看不出任何原因。已对着 12306 自己的 lcpassengerInfo_js.js 逐字对齐
  2. 请求 Referer 写死成查票页,在联程页面上会被当成流程错乱直接拒掉
  3. 排队状态判断反了:-100 是「继续等」不是结束,-1 才是成功,比 -1 更小的负数(实测 -2)表示失败。之前第一次收到 -100 就报「没分到席位」,其实那会儿票还在分配
  4. 抢到票后跳支付页用的是 GET,而该页只认 POST,所以显示「系统忙」。改成表单 POST,并补上排队轮询和订单认领两步

失败原因现在分得清:账号被限制(取消次数过多)会明说今天别再试;排队被拒就说被拒;只是没确认完就提示去订单页看一眼,不再一律报失败。

另外日志会落盘,跳转支付页后回来还能看到成功记录。

v2.1.3 主要治「连不上 12306」

实证:保活请求一直成功,只有查票请求连不上,所以不是断网也不是账号限流,是查票路径被单独掐了。失败都在 140~240ms 返回,属连接被拒,整点 12306 对新建连接做保护性拒绝,脚本改不掉,只能不硬撞。

修复:

  1. 退避状态放错位置,下单重试会重置它,等于一直没生效。改为模块级,并加分级熔断:连续失败 6 轮降到 5 秒一轮,10 轮降到 8 秒,成功即回原速
  2. 起售时刻一过轮询反而慢 4 倍(档位被算成"还有一天"),而那正是回流票最多的时候
  3. 中转模式退避、接口轮换完全没生效,掉线也不报警
  4. 点「停止」后仍会下单(并发返回时没复查状态)
  5. 目标车次留空时,起售时间核对和候补都静默失效
  6. 候补会重复提交;勾了自动找中转但没方案时会原地空转
  7. 连不上的提示不再误导:本次成功过就说明是 12306 没接,不是网络或插件的问题

顺带:停止后 15 秒内不让重启;定时跨日自动顺延;起售时间核对提前到起售前 5 分钟。

v2.1.1

【提醒的时机改对了】 有群友反馈:「标签页切到后台」那句提示,他习惯一开就挂后台, 被反复提醒吵到想干脆关掉提醒——真到开票时反而没人提醒他。

现在: · 设了定时 → 离起售还早时完全不吭声;起售前 5 分钟开始报警, 一直响到你切回页面为止。 · 没设定时(手动抢)→ 照旧立刻提醒,随时可能开火。

【登录掉线照样立刻响】 登录失效是另一回事,那是真出问题了。不管离起售多久, 检测到就报警,一直响到切回来为止。

【抢不到票:有两件是我们的问题】 · 起售前后大量「连不上 12306」(实测三个群友都有,而且保活请求 是成功的,说明是查票被拒)。原来失败后照原速硬撞, 现在连续失败会自动放慢,一恢复立刻回到原速。 · 原来「下单连续失败 10 次」就停任务,实测在起售 22 秒后就停了, 那时票还在回流。现在只有真正的错误才停,「票被抢走」会一直抢。

【顺带】 车次填多了会把日志刷爆(有人填 44 趟,一行 800 多字), 现在原因相同会合并成一句。

v2.1.0

【重点:中转(换乘)】 票被抢光是一回事,压根没有直达车是另一回事——中转解的是后者。

· 手动中转:填个中转站,脚本拆成两段盯着,两段都有票才依次下单。 绝不"见到一段抢一段"——那样人会被卡在中转站,退票还有手续费。 · 自动找中转:不填中转站、勾上开关,脚本从 12306 拉回方案, 自动挑两段都有你勾的席别、换乘时间也够的。 · 新增「联程下单」(实验,默认关):12306 的中转联程是一个订单、 一次支付,不会像分两次买那样第二段被限流。

【紧要的提示现在弹在网页正中】 以前提醒都写在面板右下角小字里,有群友就这么错过了「登录失效」,白等一场。 现在这几种会弹红框、点「知道了」才关:登录失效 / 有未完成订单 / 中转只买到一段 / 学生票用不了这段路。

【「非法的订票请求」= 学生票区间不匹配】 实测对比出来的:同车同区间同天、参数一模一样,勾学生票报错、取消就成功。 现在会直接告诉你去哪改区间。

【顺带修的】 · 中转两段连着下会判「请求过于频繁」,现在中间留 3 秒 · 报错不再甩英文;没勾席别就点开始会当场提醒

v2.0.11

【新增:中转(换乘)】

· 手动中转:填个中转站,脚本把它拆成两段盯着, 两段都有票才依次下单。绝不"见到一段抢一段"—— 先买一段再去买另一段,另一段很可能已经没了, 人就被卡在中转站,退票还有手续费。

· 自动找中转:不想自己查在哪儿中转?勾上「自动找中转站」, 脚本从 12306 拉回所有可行方案,自动挑一个两段都有你勾的 席别、换乘时间也够的,再按上面那套盯两段。

· 只买到一段时会明确告知,并告诉你该去 12306 哪儿处理。

【修复】 · 自动找中转不再占用起售前的预热时间(否则拖慢第一枪) · 起售时间核对不再每轮重复解析 · 一个席别都没勾时当场提醒(以前会"正常"跑,但永远抢不到)

【重要提醒】 中转要两段都有票才动手,所以对"同一趟车的区间限售"没用—— 那种情况该用「备选到达站(买长乘短)」。