mirror of https://github.com/testerSunshine/12306
parent
2f2d62af19
commit
c9de32463a
|
@ -123,8 +123,8 @@ class select:
|
||||||
for i in range(len(cdn) - 1):
|
for i in range(len(cdn) - 1):
|
||||||
http = HTTPClient()
|
http = HTTPClient()
|
||||||
urls = self.urls["loginInit"]
|
urls = self.urls["loginInit"]
|
||||||
start_time = datetime.datetime.now()
|
|
||||||
http.cdn = cdn[i].replace("\n", "")
|
http.cdn = cdn[i].replace("\n", "")
|
||||||
|
start_time = datetime.datetime.now()
|
||||||
rep = http.send(urls)
|
rep = http.send(urls)
|
||||||
if rep and "message" not in rep and (datetime.datetime.now() - start_time).microseconds / 1000 < 500:
|
if rep and "message" not in rep and (datetime.datetime.now() - start_time).microseconds / 1000 < 500:
|
||||||
print("加入cdn {0}".format(cdn[i].replace("\n", "")))
|
print("加入cdn {0}".format(cdn[i].replace("\n", "")))
|
||||||
|
@ -140,20 +140,19 @@ class select:
|
||||||
CDN = CDNProxy()
|
CDN = CDNProxy()
|
||||||
all_cdn = CDN.all_cdn()
|
all_cdn = CDN.all_cdn()
|
||||||
if all_cdn:
|
if all_cdn:
|
||||||
print(u"开启cdn查询")
|
print(u"由于12306网站策略调整,cdn功能暂时关闭。")
|
||||||
print(u"本次待筛选cdn总数为{}".format(len(all_cdn)))
|
# print(u"开启cdn查询")
|
||||||
t = threading.Thread(target=self.cdn_req, args=(all_cdn,))
|
# print(u"本次待筛选cdn总数为{}, 筛选时间大约为5-10min".format(len(all_cdn)))
|
||||||
t2 = threading.Thread(target=self.set_cdn, args=())
|
# t = threading.Thread(target=self.cdn_req, args=(all_cdn,))
|
||||||
t.start()
|
# t2 = threading.Thread(target=self.set_cdn, args=())
|
||||||
t2.start()
|
# t.start()
|
||||||
|
# t2.start()
|
||||||
else:
|
else:
|
||||||
raise ticketConfigException(u"cdn列表为空,请先加载cdn")
|
raise ticketConfigException(u"cdn列表为空,请先加载cdn")
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def main(self):
|
def main(self):
|
||||||
self.cdn_certification()
|
self.cdn_certification()
|
||||||
l = liftTicketInit(session=self)
|
l = liftTicketInit(self)
|
||||||
l.reqLiftTicketInit()
|
l.reqLiftTicketInit()
|
||||||
self.call_login()
|
self.call_login()
|
||||||
checkUser(self).sendCheckUser()
|
checkUser(self).sendCheckUser()
|
||||||
|
@ -237,7 +236,7 @@ class select:
|
||||||
self.station_trains),
|
self.station_trains),
|
||||||
(
|
(
|
||||||
datetime.datetime.now() - start_time).microseconds / 1000,
|
datetime.datetime.now() - start_time).microseconds / 1000,
|
||||||
self.httpClint.cdn,
|
wrapcache.get("cdn"),
|
||||||
len(
|
len(
|
||||||
self.cdn_list),
|
self.cdn_list),
|
||||||
random_time)
|
random_time)
|
||||||
|
|
|
@ -24,17 +24,17 @@ class autoSubmitOrderRequest:
|
||||||
stationTrainCode,
|
stationTrainCode,
|
||||||
leftTicket,
|
leftTicket,
|
||||||
set_type,):
|
set_type,):
|
||||||
|
self.set_type = set_type
|
||||||
self.secretStr = urllib.unquote(secretStr)
|
self.secretStr = urllib.unquote(secretStr)
|
||||||
self.train_date = train_date
|
self.train_date = train_date
|
||||||
self.query_from_station_name = query_from_station_name
|
self.query_from_station_name = query_from_station_name
|
||||||
self.query_to_station_name = query_to_station_name
|
self.query_to_station_name = query_to_station_name
|
||||||
self.passengerTicketStr = passengerTicketStr
|
self.passengerTicketStr = passengerTicketStr.rstrip("_{0}".format(self.set_type))
|
||||||
self.oldPassengerStr = oldPassengerStr
|
self.oldPassengerStr = oldPassengerStr
|
||||||
self.session = session
|
self.session = session
|
||||||
self.train_no = train_no
|
self.train_no = train_no
|
||||||
self.stationTrainCode = stationTrainCode
|
self.stationTrainCode = stationTrainCode
|
||||||
self.leftTicket = leftTicket
|
self.leftTicket = leftTicket
|
||||||
self.set_type = set_type
|
|
||||||
|
|
||||||
def data_par(self):
|
def data_par(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -11,9 +11,10 @@ class checkUser:
|
||||||
|
|
||||||
def sendCheckUser(self):
|
def sendCheckUser(self):
|
||||||
"""
|
"""
|
||||||
检查用户登录, 检查间隔为五分钟
|
检查用户登录, 检查间隔为2分钟
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
CHENK_TIME = 2
|
||||||
if wrapcache.get("user_time") is None:
|
if wrapcache.get("user_time") is None:
|
||||||
check_user_url = self.session.urls["check_user_url"]
|
check_user_url = self.session.urls["check_user_url"]
|
||||||
data = {"_json_att": ""}
|
data = {"_json_att": ""}
|
||||||
|
@ -21,13 +22,13 @@ class checkUser:
|
||||||
if check_user.get("data", False):
|
if check_user.get("data", False):
|
||||||
check_user_flag = check_user["data"]["flag"]
|
check_user_flag = check_user["data"]["flag"]
|
||||||
if check_user_flag is True:
|
if check_user_flag is True:
|
||||||
wrapcache.set("user_time", datetime.datetime.now(), timeout=60 * 5)
|
wrapcache.set("user_time", datetime.datetime.now(), timeout=60 * CHENK_TIME)
|
||||||
else:
|
else:
|
||||||
if check_user['messages']:
|
if check_user['messages']:
|
||||||
print (ticket.LOGIN_SESSION_FAIL.format(check_user['messages']))
|
print (ticket.LOGIN_SESSION_FAIL.format(check_user['messages']))
|
||||||
self.session.call_login()
|
self.session.call_login()
|
||||||
wrapcache.set("user_time", datetime.datetime.now(), timeout=60 * 5)
|
wrapcache.set("user_time", datetime.datetime.now(), timeout=60 * CHENK_TIME)
|
||||||
else:
|
else:
|
||||||
print (ticket.LOGIN_SESSION_FAIL.format(check_user['messages']))
|
print (ticket.LOGIN_SESSION_FAIL.format(check_user['messages']))
|
||||||
self.session.call_login()
|
self.session.call_login()
|
||||||
wrapcache.set("user_time", datetime.datetime.now(), timeout=60 * 5)
|
wrapcache.set("user_time", datetime.datetime.now(), timeout=60 * CHENK_TIME)
|
|
@ -1,8 +1,13 @@
|
||||||
# coding=utf-8
|
# coding=utf-8
|
||||||
import copy
|
import copy
|
||||||
import datetime
|
import datetime
|
||||||
|
import random
|
||||||
|
|
||||||
import wrapcache
|
import wrapcache
|
||||||
|
|
||||||
|
from config import urlConf
|
||||||
from config.TicketEnmu import ticket
|
from config.TicketEnmu import ticket
|
||||||
|
from myUrllib.httpUtils import HTTPClient
|
||||||
|
|
||||||
|
|
||||||
class query:
|
class query:
|
||||||
|
@ -13,6 +18,8 @@ class query:
|
||||||
def __init__(self, session, from_station, to_station, from_station_h, to_station_h, _station_seat, station_trains,
|
def __init__(self, session, from_station, to_station, from_station_h, to_station_h, _station_seat, station_trains,
|
||||||
ticke_peoples_num, station_dates=None,):
|
ticke_peoples_num, station_dates=None,):
|
||||||
self.session = session
|
self.session = session
|
||||||
|
self.httpClint = HTTPClient()
|
||||||
|
self.urls = urlConf.urls
|
||||||
self.from_station = from_station
|
self.from_station = from_station
|
||||||
self.to_station = to_station
|
self.to_station = to_station
|
||||||
self.from_station_h = from_station_h
|
self.from_station_h = from_station_h
|
||||||
|
@ -45,9 +52,9 @@ class query:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
for station_date in self.station_dates:
|
for station_date in self.station_dates:
|
||||||
select_url = copy.copy(self.session.urls["select_url"])
|
select_url = copy.copy(self.urls["select_url"])
|
||||||
select_url["req_url"] = select_url["req_url"].format(station_date, self.from_station, self.to_station)
|
select_url["req_url"] = select_url["req_url"].format(station_date, self.from_station, self.to_station)
|
||||||
station_ticket = self.session.httpClint.send(select_url)
|
station_ticket = self.httpClint.send(select_url)
|
||||||
value = station_ticket.get("data", "")
|
value = station_ticket.get("data", "")
|
||||||
if not value:
|
if not value:
|
||||||
print (u'{0}-{1} 车次坐席查询为空'.format(self.from_station_h, self.to_station_h))
|
print (u'{0}-{1} 车次坐席查询为空'.format(self.from_station_h, self.to_station_h))
|
||||||
|
@ -80,15 +87,16 @@ class query:
|
||||||
if wrapcache.get(train_no):
|
if wrapcache.get(train_no):
|
||||||
print(ticket.QUERY_IN_BLACK_LIST.format(train_no))
|
print(ticket.QUERY_IN_BLACK_LIST.format(train_no))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if ticket_num != "有" and self.ticke_peoples_num > ticket_num:
|
if ticket_num != "有" and self.ticke_peoples_num > ticket_num:
|
||||||
if self.session.is_more_ticket:
|
if self.session.is_more_ticket:
|
||||||
print(u"余票数小于乘车人数,当前余票数: {}, 删减人车人数到: {}".format(ticket_num, ticket_num))
|
print(u"余票数小于乘车人数,当前余票数: {}, 删减人车人数到: {}".format(ticket_num, ticket_num))
|
||||||
is_more_ticket_num = ticket_num
|
is_more_ticket_num = ticket_num
|
||||||
else:
|
else:
|
||||||
|
print(u"余票数小于乘车人数,当前设置不提交,放弃此次提交机会")
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
|
print(u"设置乘车人数为: {}".format(self.ticke_peoples_num))
|
||||||
is_more_ticket_num = self.ticke_peoples_num
|
is_more_ticket_num = self.ticke_peoples_num
|
||||||
print (ticket.QUERY_C)
|
print (ticket.QUERY_C)
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
# -*- coding: utf8 -*-
|
# -*- coding: utf8 -*-
|
||||||
import json
|
import json
|
||||||
import socket
|
import socket
|
||||||
import urllib
|
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from config import logger
|
from config import logger
|
||||||
|
import wrapcache
|
||||||
|
|
||||||
|
|
||||||
def _set_header_default():
|
def _set_header_default():
|
||||||
|
@ -102,6 +100,8 @@ class HTTPClient(object):
|
||||||
req_url = urls.get("req_url", "")
|
req_url = urls.get("req_url", "")
|
||||||
re_try = urls.get("re_try", 0)
|
re_try = urls.get("re_try", 0)
|
||||||
s_time = urls.get("s_time", 0)
|
s_time = urls.get("s_time", 0)
|
||||||
|
is_cdn = urls.get("is_cdn", False)
|
||||||
|
is_test_cdn = urls.get("is_test_cdn", False)
|
||||||
error_data = {"code": 99999, "message": u"重试次数达到上限"}
|
error_data = {"code": 99999, "message": u"重试次数达到上限"}
|
||||||
if data:
|
if data:
|
||||||
method = "post"
|
method = "post"
|
||||||
|
@ -114,8 +114,14 @@ class HTTPClient(object):
|
||||||
logger.log(
|
logger.log(
|
||||||
u"url: {0}\n入参: {1}\n请求方式: {2}\n".format(req_url, data, method, ))
|
u"url: {0}\n入参: {1}\n请求方式: {2}\n".format(req_url, data, method, ))
|
||||||
self.setHeadersHost(urls["Host"])
|
self.setHeadersHost(urls["Host"])
|
||||||
if self.cdn:
|
if is_test_cdn:
|
||||||
url_host = self.cdn
|
url_host = self._cdn
|
||||||
|
elif is_cdn:
|
||||||
|
cdn = wrapcache.get("cdn")
|
||||||
|
if cdn:
|
||||||
|
url_host = cdn
|
||||||
|
else:
|
||||||
|
url_host = urls["Host"]
|
||||||
else:
|
else:
|
||||||
url_host = urls["Host"]
|
url_host = urls["Host"]
|
||||||
for i in range(re_try):
|
for i in range(re_try):
|
||||||
|
|
Loading…
Reference in New Issue