微博登陸步驟

2022-02-21 23:50:02 字數 1965 閱讀 4324

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.首先訪問上面的su字串=&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.18)&_=時間戳,獲取json字串

def get_server_data(su,session,proxy):

pre_url = ""

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資料的一部分內容

"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) + '\t' + str(nonce) + '\n' + 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 = ''

servertime = server_data["servertime"]

nonce = server_data['nonce']

rsakv = server_data["rsakv"]

pubkey = server_data["pubkey"]

sp = get_password(password, servertime, nonce, pubkey)

data =

return none, '', session

微博模擬登陸

因公司需求,需要爬取微博相關大v的賬號以及相關資訊,一開始是直接爬取,發現只可以爬取10條資料 沒有登陸的情況下 所以就涉及到模擬登陸。import requests import json import base64 from lxml import etree from bs4 import b...

微博登陸python學習

python3版本的 從前的cookielib import base64 import json import urllib import urllib.parse import binascii class userlogin url解碼 def init self,username,userp...

httpclient模擬登陸微博問題

我用httpclient模擬登陸微博報如下錯誤 debug requestaddcookies cookie version 0 name usrhawb value usrmdins212 186 domain weibo.com path expiry null match weibo.com ...