登录验证码增加随机数

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,
},
"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",
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
"Host": "kyfw.12306.cn",

View File

@ -115,7 +115,8 @@ class GoLogin:
raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
login_num = 0
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)
login_num += 1
self.auth()

View File

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

View File

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

View File

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