Example #1
0
    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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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
Example #5
0
 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
Example #6
0
    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
Example #7
0
    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
Example #8
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:", 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