Skip to content

Commit 08b8da5

Browse files
committed
尝试淘宝登陆,登陆失败
1 parent 103323b commit 08b8da5

File tree

1 file changed

+49
-18
lines changed

1 file changed

+49
-18
lines changed

TaoBao/TBLogin.py

Lines changed: 49 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
#coding=gbk
22

33
from __future__ import unicode_literals
4-
import sys,re
4+
import sys,re,os
55
import urllib,urllib2,cookielib
66

77
class TBLogin():
88

9-
def __init__(self,user,pwd):
9+
user = None
10+
pwd = None
11+
12+
__verifyCode = re.compile('<img id="J_StandardCode_m" .*?src="(.*?)".*?>',re.S)
13+
__commonError = re.compile('<div id="J_Message" class="login-msg msg">.*<p class="error">(.*?)</div>',re.S)
14+
15+
def __init__(self,user=None,pwd=None):
1016
#获取一个保存cookie的对象
1117
cj = cookielib.LWPCookieJar()
1218
#将一个保存cookie对象,和一个HTTP的cookie的处理器绑定
@@ -37,10 +43,11 @@ def getLoginData(self):
3743
"""
3844

3945
login_data = {
40-
'ua':'',
46+
#ua 据说是记录用户点击和输入信息的
47+
'ua':'084tRPCEzNDcxNjgzNTAyMTY9U=|tRODwiImJyLV|tSPCtSJklidWZvaHIsITU8IidZbmRvZ3NyLV1Q==|tRODwiI3liLV|tTPCtYODwgPCEyNjM8JjY0PCEyODA8KDAwPCEyODA8JzYwPV1Q==|tYPCIiLV|tZPCIiLV|tRODwiLG9iLV|tRMTwrUihkdHBzej8vLG9naW5uJHFvYmFvbiNvbW8tZW1iZWJ/LG9naW5uKmhkfWxvMnVkaWJ1Y2R1UlxNOGR0cHUjMUUiNkUiNkd3d34kcW9iYW9uI29tZSI2QiwiKGR0cHo/LyxvZ2lubiRxb2Jhb24jb21vLWVtYmVifyxvZ29ldH4qaGR9bG8zcH1tMT4hMDAwMzg2PiA+Jj4pMjM3NDk2Jm00f2B2L2V0fTRydXVmInVkaWJ1Y2R1UlxNOGR0cHUjMUUiNkUiNkd3d34kcW9iYW9uI29tZSI2Qi1dU=|tRMjwiLG9naW5iLV|tRODwiKWRiLV|tRODwiJ2xjf2ItU=|tRMDwiK1Q1MzI5PCxSITM0NTk1MjMxNTkwMjxwPiE0Mzg2NzY0NDg4MTIzNjI3PFIsIT1SLV|tRMzwrUidZbmRvZ3NyLCInWU5AITE8IzwjMDA8IjcxMi1dU=|tRODwiLWByLV|tUPCtSIiwpNDQ8IjM3PCEwNDQwPV1Q==|tRODwiLWNiLV|tVPCtSIiwrUTA2NjwiNjY9XCA8IiIsITA3NTA9XV|tRODwiJmliLV|tXPCtSIiwhPCEwNzU2PV1Q==|tRODwiLWByLV|tUPCtSIiwhMDU0PCMwMTwhMjE5Nz1dU=|tRODwiLWNiLV|tVPCtSIiwrUTA1NDwjMDE9XCA8IiIsITIzMDQ9XV|tRODwiK2NyLV|tWPCtSIiwhMjM8IDwhMzA0MD1dU=|tRODwiLWNiLV|tVPCtSIiwrUTA1NDwjMDE9XCA8IiIsITQxNDE9XV|tRODwiJmliLV|tXPCtSIiwgPCIwMjE1PV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MTwiNTI9XCA8IiIsITA2OTMwPV1Q==|tRODwiJmliLV|tXPCtSIiwhPCEwNjk0Mj1dU=|tRODwiJmliLV|tXPCtSKk9TUWZlbE9naW5jSGVja2IsITwhMDY5NTQ9XV|tRODwiLWByLV|tUPCtSKk9TUWZlbE9naW5jSGVja2IsKDUwPCI1MzwhMDc2MDY9XV|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MDwiNTY9XCA8IiIsITA4MjgyPV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MDwiNTY9XCA8IiIsITA4OTEzPV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MDwiNTY9XCA8IiIsITA5NjAwPV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MDwiNTY9XCA8IiIsITEwNTU4PV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MDwiNTY9XCA8IiIsITExMjA5PV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1NDwiNTE9XCA8IiIsITEyNjc0PV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MDwiNTM9XCA8IiIsITE5MTk2PV1Q==|tRODwiLWNiLV|tVPCtSKk9TUWZlbE9naW5jSGVja2IsK1g1MDwiNTM9XCA8IiIsITIwOTk2PV1Q==|tRODwiJmliLV|tXPCtSKk9TUWZlbE9naW5jSGVja2IsIDwhMjQyODQ9XV|tRODwiJmliLV|tXPCtSIiwgPCEyNDMwMD1dU=',
4148
'TPL_username':self.user.encode('gbk'),
4249
'TPL_password':self.pwd,
43-
'TPL_checkcode':'',
50+
'TPL_checkcode':'http://www.taobao.com',
4451
'need_check_code':'',
4552
'longLogin':'1', #十天免登陆
4653
'action':'Authenticator',
@@ -50,14 +57,14 @@ def getLoginData(self):
5057
'fc':'default',
5158
'style':'default',
5259
'css_style':'',
53-
'tid':'',
60+
'tid':'XOR_1_000000000000000000000000000000_6358475540797D727877707E',
5461
'support':'000001',
5562
'CtrlVersion':'1,0,0,7',
5663
'loginType':'3',
5764
'minititle':'',
5865
'minipara':'',
59-
'umto':'',
60-
'pstrong':'3',
66+
'umto':'Te2cf41fa2b993f1082c87e7decec3f65',
67+
'pstrong':'2',
6168
# 'longLogin':'-1',
6269
'llnick':'',
6370
'sign':'',
@@ -70,24 +77,44 @@ def getLoginData(self):
7077
'not_duplite_str':'',
7178
'need_user_id':'',
7279
'poy':'',
73-
'gvfdcname':'',
74-
'gvfdcre':'',
80+
'gvfdcname':'10',
81+
'gvfdcre':'', #可以没有
7582
'from_encoding':''
7683
}
7784
return login_data
7885

79-
def login(self):
86+
def login(self,postData = None):
8087

88+
if postData is None:
89+
postData = self.getLoginData()
90+
8191
url = 'https://login.taobao.com/member/login.jhtml'
82-
source = self.request(url,self.getLoginData())
92+
source = self.request(url,postData)
8393
if source:
8494
print source
85-
print self.checkLoginError(source)
95+
error = self.checkLoginError(source)
96+
print error
97+
if error:
98+
if error.find('为了您的账号安全,请输入验证码。') != -1 \
99+
or error.find('验证码错误,请重新输入。') != -1:
100+
r = self.__verifyCode.search(source)
101+
if r:
102+
s = self.request(r.group(1))
103+
f = open("verifyCode.jpg","wb")
104+
f.write(s)
105+
f.close()
106+
os.system('verifyCode.jpg')
107+
postData['need_check_code'] = 'true'
108+
postData['TPL_checkcode'] = raw_input("please input verifycode:")
109+
self.login(postData)
110+
111+
if error.find('您输入的密码和账户名不匹配,请重新输入') != -1:
112+
print '您输入的密码和账户名不匹配,请重新输入'
113+
return
114+
86115

87-
def checkLoginError(self,source):
88-
89-
needVerifyCodeError = re.compile('<div id="J_Message" class="login-msg msg">.*<p class="error">(.*?)</div>',re.S)
90-
r = needVerifyCodeError.search(source)
116+
def checkLoginError(self,source):
117+
r = self.__commonError.search(source)
91118
return r.group(1) if r else None
92119

93120
def request(self,url,postData=dict()):
@@ -104,11 +131,15 @@ def request(self,url,postData=dict()):
104131
request = urllib2.urlopen(req)
105132
source = request.read()
106133
# print request.code,request.msg
107-
request.close()
134+
# request.close()
108135
return source
109136
except:
110137
info=sys.exc_info()
111-
print info[0],":",info[1]
138+
print info[0],":",info[1]
112139
return None
113140

114141
if __name__ == '__main__':
142+
t = TBLogin()
143+
t.user = 'autorunforscott'
144+
t.pwd = ''
145+
t.login()

0 commit comments

Comments
 (0)