日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

微博登陆步骤

發布時間:2023/12/15 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 微博登陆步骤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. "su"的加密算法,su是username經過BASE64計算得來的:

def get_encodename(name):
    # name must be string
    username_quote = quote_plus(str(name))
    username_base64 = base64.b64encode(username_quote.encode("utf-8"))
    return username_base64.decode("utf-8")

2.獲取sp的值,就是密碼rsa的加密值

1.首先訪問http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=上面的su字符串=&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.18)&_=時間戳,獲取json字符串

def get_server_data(su,session,proxy):
    pre_url = "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su="
    pre_url = pre_url + su + "&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.18)&_="
    prelogin_url = pre_url + str(int(time.time() * 1000))
    pre_data_res = session.get(prelogin_url, headers=headers, proxies=proxy)
    sever_data = ast.literal_eval(pre_data_res.content.decode("utf-8").replace("sinaSSOController.preloginCallBack", ''))
    return sever_data

2.獲取url的post數據的一部分內容

{"retcode":0,"servertime":1526866235,"pcid":"gz-5a7050e9c71bbf284bca688fd7bd24ec57e1","nonce":"WPGNDA","pubkey":"EB2A38568661887FA1w3062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443","rsakv":"1330428213","is_openlock":0,"lm":1,"smsurl":"https://login.sina.com.cn/sso/msglogin?entry=weibo&mobile=18810668312&s=5a68912sabf7e2d399ab4f878dc7","showpin":0,"exectime":27}

"showpin":表示是否需要驗證碼,1需要,0不需要

這一步為了獲取下面幾個參數的值

    servertime = server_data["servertime"]
    nonce = server_data['nonce']
    rsakv = server_data["rsakv"]
    pubkey = server_data["pubkey"]

 然后進行rsa解密,導入rsa模塊

def get_password(password, servertime, nonce, pubkey):
    rsa_publickey = int(pubkey, 16)
    key = rsa.PublicKey(rsa_publickey, 65537) #創建公鑰
    message = str(servertime) + '	' + str(nonce) + '
' + str(password) #創建公鑰
    message = message.encode("utf-8")
    passwd = rsa.encrypt(message, key) #加密
    passwd = binascii.b2a_hex(passwd) #將加密信息轉換為16進制。
    return passwd

最后我們就可以構造post數據進行請求了

def login_no_pincode(name, password, session, server_data, proxy):
    post_url = 'http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)'

    servertime = server_data["servertime"]
    nonce = server_data['nonce']
    rsakv = server_data["rsakv"]
    pubkey = server_data["pubkey"]
    sp = get_password(password, servertime, nonce, pubkey)

    data = {
        'encoding': 'UTF-8',
        'entry': 'weibo',
        'from': '',
        'gateway': '1',
        'nonce': nonce,
        'pagerefer': "",
        'prelt': 67,
        'pwencode': 'rsa2',
        "returntype": "META",
        'rsakv': rsakv,
        'savestate': '7',
        'servertime': servertime,
        'service': 'miniblog',
        'sp': sp,
        'sr': '1920*1080',
        'su': get_encodename(name),
        'useticket': '1',
        'vsnf': '1',
        'url': 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack'
    }

    return None, '', session

  

 

 

  

總結

以上是生活随笔為你收集整理的微博登陆步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。