def Login(self): print '====LoginInformation=======================' self.EnableCookie(self.enableProxy) serverTime, nonce, pubkey, rsakv, pcid = self.GetServerTime() # print '========>GetServerTime Finished' postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce, pubkey, rsakv) # print "========>Post data length:", len(postData) req = urllib2.Request(self.loginUrl, postData, self.postHeader) print "========>Posting request..." result = urllib2.urlopen(req, timeout=30) # text = result.read() #print 'text='+text retcode = getRetcode(text) reason = getReason(text) verifyCode = '' while retcode != 0: print 'retcode=', retcode print 'reason:', reason if retcode == -1: print 'unknown error' return False if retcode == 4049 or retcode == 2070: return False #imageurl='http://login.sina.com.cn/cgi/pin.php?r=53324&s=0&p='+pcid #image=urllib2.urlopen(imageurl) #imageFile=open('check.png','wb') #imageFile.write(image.read()) #imageFile.close() #print 'image path:'+os.getcwd()+'\check.png' #verifyCode=raw_input(u'请输入验证码image path:'+os.getcwd()+'\check.png\n') if retcode == 4040: return False postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce, pubkey, rsakv, pcid, verifyCode) req = urllib2.Request(self.loginUrl, postData, self.postHeader) result = urllib2.urlopen(req, timeout=30) text = result.read() retcode = getRetcode(text) reason = getReason(text) print 'retcode', retcode try: loginUrl = WeiboSearch.sRedirectData(text) # urllib2.urlopen(loginUrl, timeout=40) except: print 'Login error!' return False #print 'Login sucess!' return True
def Login(self): "Login progress" self.EnableCookie( self.enableProxy) #Configurate cookie or proxy server serverTime, nonce, pubkey, rsakv = self.GetServerTime( ) #First step of login postData = WeiboEncode.PostEncode( self.userName, self.passWord, serverTime, nonce, pubkey, rsakv) #Encripy username and password print "Post data length:\n", len(postData) req = urllib2.Request(self.loginUrl, postData, self.postHeader) print "Posting request..." result = urllib2.urlopen(req) #Second step of login text = result.read() try: loginUrl = WeiboSearch.sRedirectData(text) #Parse redirect result urllib2.urlopen(loginUrl) except: print 'Login error!' return False print 'Login func success!' return True
def Login(self): "登陆程序" import pdb pdb.set_trace() self.EnableCookie(self.enableProxy) #cookie或代理服务器配置 #登陆的第一步 serverTime, nonce, pubkey, rsakv = self.GetServerTime() #加密用户和密码 postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce, pubkey, rsakv) print "Post data length:\n", len(postData) req = urllib2.Request(self.loginUrl, postData, self.postHeader) print "Posting request..." #登陆的第二步——解析新浪微博的登录过程中3 result = urllib2.urlopen(req) text = result.read() try: #解析重定位结果 loginUrl = WeiboSearch.sRedirectData(text) import pdb pdb.set_trace() reqs = urllib2.urlopen(loginUrl) except: print 'Login error!' return False print 'Login sucess!' return True
def Login(self): "Run this function to laungh the login process" self.EnableCookie(self.enableProxy) serverTime, nonce = self.GetServerTime() postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce) print "Post data length:\n", len(postData) req = urllib2.Request(self.loginUrl, postData, self.postHeader) print "Posting request..." result = urllib2.urlopen(req) text = result.read() print "Post result page length: ", len(text) try: loginUrl = WeiboSearch.sRedirectData(text) urllib2.urlopen(loginUrl) except: print 'Login error!' return False print 'Login sucess!' return True
def Login(self): # 登录程序 self.EnableCookie(None) serverTime, nonce, pubkey, rsakv = self.GetServerTime( ) # 登录第一步,调用函数获取上述信息 # 准备好所有的POST参数返回postData postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce, pubkey, rsakv) print "Getting postData success" #封装request请求,获得指定URL的文本 req = urllib2.Request(self.loginUrl, postData, self.postHeader) # 封装请求信息 result = urllib2.urlopen(req) # 登录第二步向self.loginUrl发送用户和密码 text = result.read() # 读取内容 #print text """ 登陆之后新浪返回的一段脚本中定义的一个进一步登陆的url 之前还都是获取参数和验证之类的,这一步才是真正的登陆 所以你还需要再一次把这个url获取到并用get登陆即可 """ try: loginUrl = WeiboSearch.sRedirectData( text) # 得到重定位信息后,解析得到最终跳转到的URL urllib2.urlopen(loginUrl) # 打开该URL后,服务器自动将用户登陆信息写入cookie,登陆成功 except: print "login failed..." return False print "login success" return True
def Login(self): #Login weibo programe #cookie or set the proxy server self.EnableCookie(self.enableProxy) serverTime, nonce, pubkey, rsakv = self.GetServerTime( ) #the first step postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce, pubkey, rsakv) print "Post data length:\n", len(postData) req = urllib2.Request(self.loginUrl, postData, self.postHeader) print "Post request..." result = urllib2.urlopen(req) text = result.read() #print "[+] The result:" + text try: loginUrl = WeiboSearch.sRedirectData( text) #parase the redirect result urllib2.urlopen(loginUrl) myurl = "http://weibo.com/hwrichardyu?from=feed&loc=nickname&is_all=1" htmlContent = urllib2.urlopen(myurl).read() fp = open('htmlContent.txt', 'w') fp.write(htmlContent) fp.close() ''' response = urllib2.urlopen("http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&sudaref=weibo.com") content = response.read() fp = open('content.txt','w') fp.write(content) fp.close() uniqueid, userdomain = WeiboSearch.sGetUserInfor(content) url = "http://weibo.com/u/"+uniqueid+"/home"+userdomain print url myresponse = urllib2.urlopen("url") mycontent = myresponse.read() ''' except: print "Login error" return False print "[+]Login success!" return True
def __init__(self, user, pwd, enableProxy=False): "初始化WeiboLogin,enableProxy表示是否使用代理服务器,默认关闭" print "Initializing WeiboLogin..." self.userName = user self.passWord = pwd self.enableProxy = enableProxy self.serverUrl = "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.18)&_=1407721000736" self.loginUrl = "http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)" self.postHeader = { 'User-Agent': 'Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140611 Firefox/24.0 Iceweasel/24.6.0' } def Login(self): "登陆程序" self.EnableCookie(self.enableProxy) #cookie或代理服务器配置 serverTime, nonce, pubkey, rsakv = self.GetServerTime() #登陆的第一步 postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce, pubkey, rsakv) #加密用户和密码 #print "Post data length:\n", len(postData) req = urllib2.Request(self.loginUrl, postData, self.postHeader) #print "Posting request..." result = urllib2.urlopen(req) #登陆的第二步 text = result.read() try: loginUrl = WeiboSearch.sRedirectData(text) #解析重定位结果 urllib2.urlopen(loginUrl) except: print 'Login error!' return False #print 'Login sucess!' return True #print 'Login sucess!' return True
def Login(self): "登陆程序" self.EnableCookie(self.enableProxy) #cookie或代理服务器配置 serverTime, nonce, pubkey, rsakv = self.GetServerTime() #登陆的第一步 postData = WeiboEncode.PostEncode(self.userName, self.passWord, serverTime, nonce, pubkey, rsakv) #加密用户和密码 print "Post data length:", len(postData) req = urllib2.Request(self.loginUrl, postData, self.postHeader) print "Posting request..." result = urllib2.urlopen(req) #登陆的第二步——解析新浪微博的登录过程中3 text = result.read().decode('GBK') #print text try: login_url = WeiboSearch.sRedirectData(text) #解析重定位结果 #request = urllib.request.Request(login_url) response = urllib2.urlopen(login_url) page = response.read().decode('GBK') #print(page) p2 = re.compile(r'"userdomain":"(.*?)"') login_url = 'http://weibo.com/' + p2.search(page).group(1) #request = urllib.request.Request(login_url) response = urllib2.urlopen(login_url) final = response.read().decode('utf-8') #print final except: print 'Login error!' logger.error('login error for ' + self.userName) print traceback.print_exc() return False print self.userName, 'Login sucess!' logger.error('login successfully for ' + self.userName) return True