找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3724|回复: 0

python模拟登录问题(求大神)

1

主题

1

帖子

5

积分

贫民

积分
5
zheng65555 发表于 2016-3-17 17:31:19 | 显示全部楼层 |阅读模式
#-*-coding:utf-8-*-
import urllib2
import urllib
import cookielib
import re


def getToken(opener,url):
    header = {
        'Host': 'login.360.cn',
        'Connection': 'keep-alive',
        'Cache-Control': 'max-age=0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36',
        'DNT': 1,
        'Accept-Language': 'zh-CN,zh;q=0.8',
        'Cookie': '__guid=3537848.262938988660372670.1457430766852.798; Q=u%3Dmurat65555%26n%3D%26le%3D%26m%3D%26qid%3D370265639%26im%3D220255dq9816%26src%3Dpcw_cloud%26t%3D1; T=s%3D99629954944c93bbac25bb08d3210987%26t%3D1458111878%26lm%3D%26lf%3D4%26sk%3D08042ed6a0466575fcf99dfb7fc10a40%26mt%3D1458111878%26rc%3D%26v%3D2.0%26a%3D0'
    }
    rq = urllib2.Request(url,headers=header)
    result = opener.open(rq)
    r = re.compile("\"token\":\"(.*?)\"")
    token = re.findall(r,bytes(result.read().decode('utf-8')))
    return token

def getOpener():
    cj = cookielib.LWPCookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj),urllib2.HTTPHandler)
    return opener,cj


def doLogin(opener,url,token):
    data = {
    'src':'pcw_cloud',
    'from':'pcw_cloud',
    'charset':'UTF-8',
    'requestScema':'https',
    'o':'sso',
    'm':'login',
    'lm':0,
    'captFlag':1,
    'rtype':'data',
    'validatelm':0,
    'isKeepAlive':'',
    'captchaApp':'i360',
    'userName':'帐号',
    'type':'normal',
    'account':'账号',
    'password':'密码',
    'captcha':'',
    'token':token,
    'proxy':'http://yunpan.360.cn/psp_jump.html',
    'callback':'QiUserJsonp24000592',
    'func':'QiUserJsonp24000592'
    }
    header = {
        'Host': 'login.360.cn',
        'Connection': 'keep-alive',
        'Cache-Control': 'max-age=0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Origin': 'http://yunpan.360.cn',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0',
        'Content-Type': 'application/x-www-form-urlencoded',
        'DNT': 1,
        'Referer': 'http://yunpan.360.cn/',
        'Accept-Language': 'zh-CN,zh;q=0.8'
    }
    postdata = urllib.urlencode(data)
    request = urllib2.Request(url,postdata,header)
    result = opener.open(request)
    return result

def test():
    c = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(c))
    header = {
        'Host': 'login.360.cn',
        'Connection': 'keep-alive',
        'Cache-Control': 'max-age=0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36',
        'DNT': 1,
        'Accept-Language': 'zh-CN,zh;q=0.8',
        'Cookie': '__guid=3537848.262938988660372670.1457430766852.798; Q=u%3Dmurat65555%26n%3D%26le%3D%26m%3D%26qid%3D370265639%26im%3D220255dq9816%26src%3Dpcw_cloud%26t%3D1; T=s%3D99629954944c93bbac25bb08d3210987%26t%3D1458111878%26lm%3D%26lf%3D4%26sk%3D08042ed6a0466575fcf99dfb7fc10a40%26mt%3D1458111878%26rc%3D%26v%3D2.0%26a%3D0'
    }
    rq = urllib2.Request('https://login.360.cn/?func=jQuery111105911146316211671_1457684208869&src=pcw_cloud&from=pcw_cloud&charset=UTF-8&requestScema=https&o=sso&m=getToken&userName=zheng45555%40sina.com',headers=header)
    result = opener.open(rq)
    print result.read()
    print c._cookies


if __name__ == '__main__':
    url='https://login.360.cn/'
    urlToken = 'https://login.360.cn/?func=jQuery111105911146316211671_1457684208869&src=pcw_cloud&from=pcw_cloud&charset=UTF-8&requestScema=https&o=sso&m=getToken&userName=zheng45555%40sina.com'
    resulturl = 'http://c59.yunpan.360.cn/my/index/'

    opener,cj = getOpener()
    token = getToken(opener,urlToken)
    print token[0
    result = doLogin(opener,url,token[0])
    print result.read().decode('utf-8')
    cg = opener.open(resulturl)
    print cg.read().decode('utf-8')


这样为什么总是登录不成功,求大神指教
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表