mirror of https://github.com/testerSunshine/12306
parent
941cbe6831
commit
2f071287a4
|
@ -80,10 +80,12 @@
|
||||||
- 学生票issues [学生票修改](https://github.com/testerSunshine/12306/issues/47)
|
- 学生票issues [学生票修改](https://github.com/testerSunshine/12306/issues/47)
|
||||||
- 依赖安装不对的问题(ImportError)[requirements.txt问题](https://github.com/testerSunshine/12306/issues/91)
|
- 依赖安装不对的问题(ImportError)[requirements.txt问题](https://github.com/testerSunshine/12306/issues/91)
|
||||||
- 若快豆子疑问 [点我](https://github.com/testerSunshine/12306/issues/67)
|
- 若快豆子疑问 [点我](https://github.com/testerSunshine/12306/issues/67)
|
||||||
|
- IOError: 【Errno 0】 Error 问题 [点我](https://github.com/testerSunshine/12306/issues/159)
|
||||||
|
|
||||||
- 测试下单接口是否可用,有两个下单接口,随便用哪个都ok
|
- 测试下单接口是否可用,有两个下单接口,随便用哪个都ok
|
||||||
- 如果下载验证码过期或者下载失败的问题,应该是12306封ip的策略,多重试几次,12306现在封服务器(阿里云和腾讯云)ip比较严重,尽量不要放在服务器里面
|
- 如果下载验证码过期或者下载失败的问题,应该是12306封ip的策略,多重试几次,12306现在封服务器(阿里云和腾讯云)ip比较严重,尽量不要放在服务器里面
|
||||||
- 目前12306对服务器ip比较敏感,大家还是在自己家里挂着吧
|
- 目前12306对服务器ip比较敏感,大家还是在自己家里挂着吧
|
||||||
|
- 如果想使用此项目的gui版本,请加群,目前只有mac版本
|
||||||
- 感谢一下小伙伴对本项目提供的帮助
|
- 感谢一下小伙伴对本项目提供的帮助
|
||||||
- @sun7127@126.com
|
- @sun7127@126.com
|
||||||
- @ 才
|
- @ 才
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
|
import random
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
@ -102,9 +103,9 @@ def getCacheFile(cacheType):
|
||||||
def checkSleepTime(session):
|
def checkSleepTime(session):
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
if now.hour >= 23 or now.hour < 6:
|
if now.hour >= 23 or now.hour < 6:
|
||||||
print(u"12306休息时间,本程序自动停止,明天早上七点将自动运行")
|
print(u"12306休息时间,本程序自动停止,明天早上六点点将自动运行")
|
||||||
open_time = datetime.datetime(now.year, now.month, now.day, 6)
|
open_time = datetime.datetime(now.year, now.month, now.day, 6)
|
||||||
if open_time < now:
|
if open_time < now:
|
||||||
open_time += datetime.timedelta(1)
|
open_time += datetime.timedelta(1)
|
||||||
time.sleep((open_time - now).seconds)
|
time.sleep((open_time - now).seconds + round(random.uniform(1, 10)))
|
||||||
session.call_login()
|
session.call_login()
|
||||||
|
|
|
@ -5,7 +5,8 @@ set:
|
||||||
# - 2018-01-06
|
# - 2018-01-06
|
||||||
# - 2018-01-07
|
# - 2018-01-07
|
||||||
station_dates:
|
station_dates:
|
||||||
- "2019-02-02"
|
- "2019-02-10"
|
||||||
|
- "2019-02-11"
|
||||||
|
|
||||||
# 是否根据时间范围 和 乘车类型 购票
|
# 是否根据时间范围 和 乘车类型 购票
|
||||||
# 否则将需要手动填写车次
|
# 否则将需要手动填写车次
|
||||||
|
@ -30,15 +31,15 @@ set:
|
||||||
# - "G1353"
|
# - "G1353"
|
||||||
# - "G1329"
|
# - "G1329"
|
||||||
station_trains:
|
station_trains:
|
||||||
- "G6172"
|
- "G6153"
|
||||||
- "G6186"
|
- "G6184"
|
||||||
- "G6154"
|
- "G6173"
|
||||||
|
|
||||||
# 出发城市,比如深圳北,就填深圳就搜得到
|
# 出发城市,比如深圳北,就填深圳就搜得到
|
||||||
from_station: "广州南"
|
from_station: "邵阳"
|
||||||
|
|
||||||
# 到达城市 比如深圳北,就填深圳就搜得到
|
# 到达城市 比如深圳北,就填深圳就搜得到
|
||||||
to_station: "邵阳"
|
to_station: "深圳北"
|
||||||
|
|
||||||
# 座位(list) 多个座位ex:
|
# 座位(list) 多个座位ex:
|
||||||
# - "商务座"
|
# - "商务座"
|
||||||
|
@ -54,18 +55,18 @@ set:
|
||||||
- "二等座"
|
- "二等座"
|
||||||
|
|
||||||
# 当余票小于乘车人,如果选择优先提交,则删减联系人和余票数一致在提交
|
# 当余票小于乘车人,如果选择优先提交,则删减联系人和余票数一致在提交
|
||||||
is_more_ticket: True
|
is_more_ticket: False
|
||||||
|
|
||||||
# 乘车人(list) 多个乘车人ex:
|
# 乘车人(list) 多个乘车人ex:
|
||||||
# - "张三"
|
# - "张三"
|
||||||
# - "李四"
|
# - "李四"
|
||||||
ticke_peoples:
|
ticke_peoples:
|
||||||
- "文贤平"
|
- ""
|
||||||
- "李梦云"
|
- ""
|
||||||
# - "梁敏"
|
|
||||||
# 12306登录账号(list)
|
# 12306登录账号(list)
|
||||||
12306account:
|
12306account:
|
||||||
- user: "13828728396"
|
- user: "931128603@qq.com"
|
||||||
- pwd: ""
|
- pwd: ""
|
||||||
|
|
||||||
# 加入小黑屋时间默认为5分钟,此功能为了防止僵尸票导致一直下单不成功错过正常的票,
|
# 加入小黑屋时间默认为5分钟,此功能为了防止僵尸票导致一直下单不成功错过正常的票,
|
||||||
|
@ -106,7 +107,7 @@ email_conf:
|
||||||
# 是否开启cdn查询,可以更快的检测票票 1为开启,2为关闭
|
# 是否开启cdn查询,可以更快的检测票票 1为开启,2为关闭
|
||||||
is_cdn: 1
|
is_cdn: 1
|
||||||
|
|
||||||
# 下单接口分为两种,1 为快速下单,2 是普通下单
|
# 下单接口分为两种,1 模拟网页自动捡漏下单(不稳定),2 模拟车次后面的购票按钮下单(稳如老狗)
|
||||||
order_type: 2
|
order_type: 2
|
||||||
|
|
||||||
# 下单模式 1 为预售,整点刷新,刷新间隔0.1-0.5S, 然后会校验时间,比如12点的预售,那脚本就会在12.00整检票,刷新订单
|
# 下单模式 1 为预售,整点刷新,刷新间隔0.1-0.5S, 然后会校验时间,比如12点的预售,那脚本就会在12.00整检票,刷新订单
|
||||||
|
|
|
@ -291,14 +291,19 @@ class select:
|
||||||
time.sleep(random_time)
|
time.sleep(random_time)
|
||||||
except PassengerUserException as e:
|
except PassengerUserException as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
break
|
||||||
except ticketConfigException as e:
|
except ticketConfigException as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
break
|
||||||
except ticketIsExitsException as e:
|
except ticketIsExitsException as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
break
|
||||||
except ticketNumOutException as e:
|
except ticketNumOutException as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
break
|
||||||
except UserPasswordException as e:
|
except UserPasswordException as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
break
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
if e == "No JSON object could be decoded":
|
if e == "No JSON object could be decoded":
|
||||||
print(u"12306接口无响应,正在重试")
|
print(u"12306接口无响应,正在重试")
|
||||||
|
|
|
@ -95,7 +95,7 @@ class query:
|
||||||
continue
|
continue
|
||||||
value = station_ticket.get("data", "")
|
value = station_ticket.get("data", "")
|
||||||
if not value:
|
if not value:
|
||||||
print (u'{0}-{1} 车次坐席查询为空,ip网络异常,查询url: https://kyfw.12306.cn{2}, 可以手动查询是否有票'.format(self.from_station_h,
|
print(u'{0}-{1} 车次坐席查询为空,ip网络异常,查询url: https://kyfw.12306.cn{2}, 可以手动查询是否有票'.format(self.from_station_h,
|
||||||
self.to_station_h,
|
self.to_station_h,
|
||||||
select_url["req_url"]))
|
select_url["req_url"]))
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue