增加无需验证码登录接口

pull/259/head
wenxianping 2019-04-01 21:29:44 +08:00
parent 85b2e48330
commit b4c6c4f858
4 changed files with 151 additions and 24 deletions

View File

@ -337,18 +337,6 @@ urls = {
"is_logger": True, "is_logger": True,
"is_json": True, "is_json": True,
}, },
"loginAysnSuggest": { # 快速订单排队
"req_url": "/otn/login/loginAysnSuggest",
"req_type": "post",
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
"Content-Type": 1,
"Host": "kyfw.12306.cn",
"re_try": 10,
"re_time": 0.01,
"s_time": 0.1,
"is_logger": True,
"is_json": True,
},
"Pushbear": { # push通知 "Pushbear": { # push通知
"req_url": "/sub", "req_url": "/sub",
"req_type": "post", "req_type": "post",
@ -368,5 +356,93 @@ urls = {
"cdn_list": { "cdn_list": {
"req_url": "http://ping.chinaz.com/iframe.ashx?t=ping&callback=jQuery111304824429956769827_{}".format(int(round(time.time() * 1000))), "req_url": "http://ping.chinaz.com/iframe.ashx?t=ping&callback=jQuery111304824429956769827_{}".format(int(round(time.time() * 1000))),
"req_type": "post" "req_type": "post"
} },
"TPLINK": { # TPLINK请求地址
"req_url": "/",
"req_type": "post",
"Referer": "",
"Content-Type": 1,
"Host": "192.168.0.1",
"re_try": 10,
"re_time": 0.01,
"s_time": 0.1,
"is_logger": False,
"is_json": True,
"httpType": "http"
},
"TPds": { # TPLINK路由器内部切换地址
"req_url": "/stok={}/ds",
"req_type": "post",
"Referer": "",
"Content-Type": 1,
"Host": "192.168.0.1",
"re_try": 10,
"re_time": 0.01,
"s_time": 0.1,
"is_logger": False,
"is_json": True,
"httpType": "http"
},
"xiaomiHome": { # 小米路由器登录
"req_url": "/cgi-bin/luci/web",
"req_type": "get",
"Referer": "",
"Content-Type": 1,
"Host": "192.168.31.1",
"re_try": 10,
"re_time": 0.01,
"s_time": 0.1,
"is_logger": False,
"is_json": False,
"httpType": "http"
},
"xiaomi": { # 小米路由器登录
"req_url": "/cgi-bin/luci/api/xqsystem/login",
"req_type": "post",
"Referer": "",
"Content-Type": 1,
"Host": "192.168.31.1",
"re_try": 10,
"re_time": 0.01,
"s_time": 0.1,
"is_logger": False,
"is_json": True,
"httpType": "http"
},
"loginHtml": { # 登录接口2
"req_url": "/otn/resources/login.html",
"req_type": "get",
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
"Host": "kyfw.12306.cn",
"re_try": 10,
"re_time": 0.3,
"s_time": 0.1,
"is_logger": True,
"is_json": True,
},
"loginConf": { # 登录接口2
"req_url": "/otn/login/conf",
"req_type": "post",
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
"Host": "kyfw.12306.cn",
"re_try": 10,
"re_time": 0.3,
"s_time": 0.1,
"is_logger": True,
"is_json": True,
},
"loginAysnSuggest": { # 登录接口2
"req_url": "/otn/login/loginAysnSuggest",
"req_type": "post",
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
"Host": "kyfw.12306.cn",
"re_try": 10,
"re_time": 0.3,
"s_time": 0.1,
"is_logger": True,
"is_json": True,
},
} }

View File

@ -4,6 +4,8 @@ from time import sleep
from config.ticketConf import _get_yaml from config.ticketConf import _get_yaml
from inter.GetPassCodeNewOrderAndLogin import getPassCodeNewOrderAndLogin from inter.GetPassCodeNewOrderAndLogin import getPassCodeNewOrderAndLogin
from inter.GetRandCode import getRandCode from inter.GetRandCode import getRandCode
from inter.LoginAysnSuggest import loginAysnSuggest
from inter.LoginConf import loginConf
from myException.UserPasswordException import UserPasswordException from myException.UserPasswordException import UserPasswordException
from myException.balanceException import balanceException from myException.balanceException import balanceException
@ -113,17 +115,24 @@ class GoLogin:
raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查") raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
login_num = 0 login_num = 0
while True: while True:
result = getPassCodeNewOrderAndLogin(session=self.session, imgType="login") if loginConf(self.session):
if not result: result = getPassCodeNewOrderAndLogin(session=self.session, imgType="login")
continue if not result:
self.randCode = getRandCode(self.is_auto_code, self.auto_code_type, result) continue
login_num += 1 self.randCode = getRandCode(self.is_auto_code, self.auto_code_type, result)
self.auth() login_num += 1
if self.codeCheck(): self.auth()
uamtk = self.baseLogin(user, passwd) if self.codeCheck():
if uamtk: uamtk = self.baseLogin(user, passwd)
self.getUserName(uamtk) if uamtk:
break self.getUserName(uamtk)
break
else:
loginAysnSuggest(self.session, username=user, password=passwd)
login_num += 1
break
# if __name__ == "__main__": # if __name__ == "__main__":
# # main() # # main()

20
inter/LoginAysnSuggest.py Normal file
View File

@ -0,0 +1,20 @@
# coding=utf-8
from config.urlConf import urls
def loginAysnSuggest(session, username, password):
"""
登录接口
ps: 不需要验证码
:return:
"""
loginAysnSuggestUrls = urls.get("loginAysnSuggest")
data = {
"loginUserDTO.user_name": username,
"userDTO.password": password
}
loginAysnSuggestRsp = session.httpClint.send(urls=loginAysnSuggestUrls, data=data)
if loginAysnSuggestRsp and loginAysnSuggestRsp.get("httpstatus") is 200 and loginAysnSuggestRsp.get("data", {}).get("loginCheck") == "Y":
print(u"登录成功")
else:
print(u"登录失败, {0} {1}".format("".join(loginAysnSuggestRsp.get("messages")), loginAysnSuggestRsp.get("validateMessages")))

22
inter/LoginConf.py Normal file
View File

@ -0,0 +1,22 @@
# coding=utf-8
from config.urlConf import urls
def loginConf(session):
"""
判断登录是否需要验证码
:param session:
:return:
"""
loginConfUrl = urls.get("loginConf")
loginConfRsp = session.httpClint.send(urls=loginConfUrl, data={})
if loginConfRsp and loginConfRsp.get("data", {}).get("is_login_passCode") == "N":
print(u"不需要验证码")
return False
else:
print(u"需要验证码")
return True
if __name__ == '__main__':
pass