提交 2f071287 编写于 作者: W wenxianping
上级 941cbe68
...@@ -80,10 +80,12 @@ ...@@ -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
- @ 才 - @ 才
......
# -*- 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): ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册