登录验证码增加随机数

pull/45/head
wenxianping 2018-09-04 19:02:28 +08:00
parent 41695e1d55
commit 01f728c47e
5 changed files with 24 additions and 11 deletions

View File

@ -233,7 +233,7 @@ urls = {
"is_json": True, "is_json": True,
}, },
"codeImgByOrder": { # 订单页面验证码 "codeImgByOrder": { # 订单页面验证码
"req_url": "/otn/passcodeNew/getPassCodeNew?module=passenger&rand=randp&%s" % random.random(), "req_url": "/otn/passcodeNew/getPassCodeNew?module=passenger&rand=randp&{}",
"req_type": "post", "req_type": "post",
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc", "Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
"Host": "kyfw.12306.cn", "Host": "kyfw.12306.cn",

View File

@ -115,7 +115,8 @@ class GoLogin:
raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查") raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
login_num = 0 login_num = 0
while True: while True:
getPassCodeNewOrderAndLogin(session=self.session, imgType="login") if not getPassCodeNewOrderAndLogin(session=self.session, imgType="login"):
continue
self.randCode = getRandCode(self.is_auto_code, self.auto_code_type) self.randCode = getRandCode(self.is_auto_code, self.auto_code_type)
login_num += 1 login_num += 1
self.auth() self.auth()

View File

@ -235,9 +235,11 @@ class select:
self.station_dates), self.station_dates),
",".join( ",".join(
self.station_trains), self.station_trains),
(datetime.datetime.now() - start_time).microseconds / 1000, (
datetime.datetime.now() - start_time).microseconds / 1000,
self.httpClint.cdn, self.httpClint.cdn,
len(self.cdn_list), len(
self.cdn_list),
random_time) random_time)
except PassengerUserException as e: except PassengerUserException as e:
print e.message print e.message
@ -268,4 +270,4 @@ class select:
if __name__ == '__main__': if __name__ == '__main__':
pass pass

View File

@ -115,8 +115,8 @@ class autoSubmitOrderRequest:
else: else:
print(ticket.AUTO_SUBMIT_ORDER_REQUEST_F) print(ticket.AUTO_SUBMIT_ORDER_REQUEST_F)
if autoSubmitOrderRequestResult.get("messages", ""): if autoSubmitOrderRequestResult.get("messages", ""):
print(autoSubmitOrderRequestResult.get("messages", "")) print("".join(autoSubmitOrderRequestResult.get("messages", "")))
elif autoSubmitOrderRequestResult.get("validateMessages", ""): elif autoSubmitOrderRequestResult.get("validateMessages", ""):
print(autoSubmitOrderRequestResult.get("validateMessages", "")) print("".join(autoSubmitOrderRequestResult.get("validateMessages", "")))

View File

@ -1,4 +1,7 @@
# coding=utf-8 # coding=utf-8
import copy
import random
import time
def getPassCodeNewOrderAndLogin(session, imgType): def getPassCodeNewOrderAndLogin(session, imgType):
@ -9,14 +12,21 @@ def getPassCodeNewOrderAndLogin(session, imgType):
:return: :return:
""" """
if imgType == "login": if imgType == "login":
codeImgUrl = session.urls["getCodeImg"] codeImgUrl = copy.deepcopy(session.urls["getCodeImg"])
codeImgUrl["req_url"] = codeImgUrl["req_url"].format(random.random())
else: else:
codeImgUrl = session.urls["codeImgByOrder"] codeImgUrl = copy.deepcopy(session.urls["codeImgByOrder"])
codeImgUrl["req_url"] = codeImgUrl["req_url"].format(random.random())
print (u"下载验证码...") print (u"下载验证码...")
img_path = './tkcode' img_path = './tkcode'
result = session.httpClint.send(codeImgUrl) result = session.httpClint.send(codeImgUrl)
try: try:
print(u"下载验证码成功") if isinstance(result, dict):
open(img_path, 'wb').write(result) print(u"下载验证码失败, 请手动检查是否ip被封或者重试请求地址{}".format(codeImgUrl))
return False
else:
print(u"下载验证码成功")
open(img_path, 'wb').write(result)
return True
except OSError: except OSError:
print (u"验证码下载失败可能ip被封确认请手动请求: {0}".format(codeImgUrl)) print (u"验证码下载失败可能ip被封确认请手动请求: {0}".format(codeImgUrl))