update version 116

pull/460/head
xianping.wen 2019-10-14 10:11:40 +08:00
parent 61401f9d2b
commit 264f88a565
3 changed files with 39 additions and 19 deletions

View File

@ -7,7 +7,9 @@
TICKET_TYPE = 2 TICKET_TYPE = 2
# 出发日期(list) "2018-01-06", "2018-01-07" # 出发日期(list) "2018-01-06", "2018-01-07"
STATION_DATES = [] STATION_DATES = [
"2019-10-25"
]
# 填入需要购买的车次(list)"G1353" # 填入需要购买的车次(list)"G1353"
# 修改车次填入规则,注:(以前设置的车次逻辑不变),如果车次填入为空,那么就是当日乘车所有车次都纳入筛选返回 # 修改车次填入规则,注:(以前设置的车次逻辑不变),如果车次填入为空,那么就是当日乘车所有车次都纳入筛选返回
@ -15,10 +17,10 @@ STATION_DATES = []
STATION_TRAINS = [] STATION_TRAINS = []
# 出发城市,比如深圳北,就填深圳就搜得到 # 出发城市,比如深圳北,就填深圳就搜得到
FROM_STATION = "" FROM_STATION = "深圳北"
# 到达城市 比如深圳北,就填深圳就搜得到 # 到达城市 比如深圳北,就填深圳就搜得到
TO_STATION = "" TO_STATION = "广州南"
# 座位(list) 多个座位ex: # 座位(list) 多个座位ex:
# "商务座", # "商务座",
@ -30,14 +32,15 @@ TO_STATION = ""
# "硬座", # "硬座",
# "无座", # "无座",
# "动卧", # "动卧",
SET_TYPE = [] SET_TYPE = ["二等座"]
# 当余票小于乘车人,如果选择优先提交,则删减联系人和余票数一致在提交 # 当余票小于乘车人,如果选择优先提交,则删减联系人和余票数一致在提交
# bool # bool
IS_MORE_TICKET = True IS_MORE_TICKET = True
# 乘车人(list) 多个乘车人ex: # 乘车人(list) 多个乘车人ex:
# - "张三" # "张三",
# - "李四" # "李四"
TICKET_PEOPLES = [] TICKET_PEOPLES = []
# 12306登录账号 # 12306登录账号
@ -52,7 +55,7 @@ IS_AUTO_CODE = True
# 设置2本地自动打码需要配置tensorflow和keras库3为云打码由于云打码服务器资源有限(为2h4C的cpu服务器),请不要恶意请求,不然只能关闭服务器 # 设置2本地自动打码需要配置tensorflow和keras库3为云打码由于云打码服务器资源有限(为2h4C的cpu服务器),请不要恶意请求,不然只能关闭服务器
# ps: 请不要一直依赖云服务器资源,在此向提供服务器的"do it"同学表示感谢 # ps: 请不要一直依赖云服务器资源,在此向提供服务器的"do it"同学表示感谢
AUTO_CODE_TYPE = 2 AUTO_CODE_TYPE = 3
# 邮箱配置,如果抢票成功,将通过邮件配置通知给您 # 邮箱配置,如果抢票成功,将通过邮件配置通知给您
# 列举163 # 列举163
@ -73,7 +76,7 @@ EMAIL_CONF = {
"notice_email_list": "", "notice_email_list": "",
"username": "", "username": "",
"password": "", "password": "",
"host": "", "host": "smtp.qq.com",
} }
# 是否开启 server酱 微信提醒, 使用前需要前往 http://sc.ftqq.com/3.version 扫码绑定获取 SECRET 并关注获得抢票结果通知的公众号 # 是否开启 server酱 微信提醒, 使用前需要前往 http://sc.ftqq.com/3.version 扫码绑定获取 SECRET 并关注获得抢票结果通知的公众号
@ -86,7 +89,7 @@ SERVER_CHAN_CONF = {
IS_CDN = 1 IS_CDN = 1
# 下单接口分为两种1 模拟网页自动捡漏下单不稳定2 模拟车次后面的购票按钮下单(稳如老狗) # 下单接口分为两种1 模拟网页自动捡漏下单不稳定2 模拟车次后面的购票按钮下单(稳如老狗)
ORDER_TYPE = 2 ORDER_TYPE = 1
# 下单模式 1 为预售整点刷新刷新间隔0.1-0.5S, 然后会校验时间比如12点的预售那脚本就会在12.00整检票,刷新订单 # 下单模式 1 为预售整点刷新刷新间隔0.1-0.5S, 然后会校验时间比如12点的预售那脚本就会在12.00整检票,刷新订单
# 2 是捡漏捡漏的刷新间隔时间为0.5-3秒时间间隔长不容易封ip # 2 是捡漏捡漏的刷新间隔时间为0.5-3秒时间间隔长不容易封ip
@ -104,11 +107,17 @@ IS_PROXY = 0
OPEN_TIME = "13:00:00" OPEN_TIME = "13:00:00"
# 1=使用selenium获取devicesID # 1=使用selenium获取devicesID
# 2=使用网页端/otn/HttpZF/logdevice获取devicesId这个接口的算法目前可能有点问题如果登录一直302的请改为配置1 # 2=使用网页端/otn/HttpZF/logdevice获取devicesId这个接口的算法目前可能有点问题如果登录一直302的请改为配置1
# 3=自己打开浏览器在headers-Cookies中抓取RAIL_DEVICEID和RAIL_EXPIRATION这个就不用配置selenium
COOKIE_TYPE = 1 COOKIE_TYPE = 1
# 如果COOKIE_TYPE=1则需配置chromeDriver路径,下载地址http://chromedriver.storage.googleapis.com/index.html # 如果COOKIE_TYPE=1则需配置chromeDriver路径,下载地址http://chromedriver.storage.googleapis.com/index.html
# chromedriver配置版本只要和chrome的大版本匹配就行 # chromedriver配置版本只要和chrome的大版本匹配就行
CHROME_PATH = "" CHROME_PATH = ""
# 如果COOKIE_TYPE=1, 则需配置RAIL_EXPIRATION、RAIL_DEVICEID的值
RAIL_EXPIRATION = ""
RAIL_DEVICEID = ""
# 1=>为一直随机ua,2->只启动的时候随机一次ua # 1=>为一直随机ua,2->只启动的时候随机一次ua
RANDOM_AGENT = 2 RANDOM_AGENT = 2
@ -116,12 +125,12 @@ PASSENGER_TICKER_STR = {
'一等座': 'M', '一等座': 'M',
'特等座': 'P', '特等座': 'P',
'二等座': 'O', '二等座': 'O',
'商务座': "9", '商务座': 9,
'硬座': "1", '硬座': 1,
'无座': "1", '无座': 1,
'软座': "2", '软座': 2,
'软卧': "3", '软卧': 4,
'硬卧': "4", '硬卧': 3,
} }
# 保护12306官网请求频率设置随机请求时间原则为5分钟不大于80次 # 保护12306官网请求频率设置随机请求时间原则为5分钟不大于80次
@ -131,4 +140,4 @@ MAX_TIME = 5
MIN_TIME = 3 MIN_TIME = 3
# 软件版本 # 软件版本
RE_VERSION = "1.1.114" RE_VERSION = "1.1.116"

View File

@ -30,6 +30,16 @@ def getDrvicesID(session):
print("cookie获取完成") print("cookie获取完成")
elif TickerConfig.COOKIE_TYPE is 2: elif TickerConfig.COOKIE_TYPE is 2:
request_device_id(session) request_device_id(session)
elif TickerConfig.COOKIE_TYPE is 3:
# RAIL_DEVICEID,RAIL_EXPIRATION的值打开12306官网可以获取headers-Cookies
if not TickerConfig.RAIL_DEVICEID or TickerConfig.RAIL_EXPIRATION:
print("警告!!: RAIL_DEVICEID,RAIL_EXPIRATION的值为空请手动打开12306官网可以获取headers-Cookies中的RAIL_DEVICEID,RAIL_EXPIRATION填入配置文件中")
cookies = [{
"RAIL_DEVICEID": TickerConfig.RAIL_DEVICEID,
"RAIL_EXPIRATION": TickerConfig.RAIL_EXPIRATION,
}]
session.httpClint.set_cookies(cookies)
session.cookies = cookies
def request_device_id(session): def request_device_id(session):

View File

@ -6,6 +6,7 @@ from config.TicketEnmu import ticket
from inter.CheckRandCodeAnsyn import checkRandCodeAnsyn from inter.CheckRandCodeAnsyn import checkRandCodeAnsyn
from inter.GetQueueCountAsync import getQueueCountAsync from inter.GetQueueCountAsync import getQueueCountAsync
from inter.GetRandCode import getRandCode from inter.GetRandCode import getRandCode
import TickerConfig
class autoSubmitOrderRequest: class autoSubmitOrderRequest:
@ -60,8 +61,8 @@ class autoSubmitOrderRequest:
data["train_date"] = self.train_date data["train_date"] = self.train_date
data["tour_flag"] = "dc" data["tour_flag"] = "dc"
data["purpose_codes"] = "ADULT" data["purpose_codes"] = "ADULT"
data["query_from_station_name"] = self.session.from_station data["query_from_station_name"] = TickerConfig.FROM_STATION
data["query_to_station_name"] = self.session.to_station data["query_to_station_name"] = TickerConfig.TO_STATION
data["cancel_flag"] = 2 data["cancel_flag"] = 2
data["bed_level_order_num"] = "000000000000000000000000000000" data["bed_level_order_num"] = "000000000000000000000000000000"
data["passengerTicketStr"] = self.passengerTicketStr data["passengerTicketStr"] = self.passengerTicketStr
@ -92,7 +93,7 @@ class autoSubmitOrderRequest:
toStationTelecode=self.query_to_station_name, toStationTelecode=self.query_to_station_name,
leftTicket=self.leftTicket, leftTicket=self.leftTicket,
set_type=self.set_type, set_type=self.set_type,
users=len(self.session.ticke_peoples), users=len(TickerConfig.TICKET_PEOPLES),
station_dates=self.train_date, station_dates=self.train_date,
passengerTicketStr=self.passengerTicketStr, passengerTicketStr=self.passengerTicketStr,
oldPassengerStr=self.oldPassengerStr, oldPassengerStr=self.oldPassengerStr,