微博密码错误登陆post提交表单1

entry: weibogateway: 1

from: savestate; 7

qrcode_flag: false

useticket: 1

vsnf: 1 su:

MTU2MTEyNjkzMDA= service: miniblog

servertime:

1523496520 nonce: 7MLSVE

pwencode: rsa2

rsakv: 1330428213

sp:

a85192f8bcd006e5aac69dc373403d8548235313d1fbb9ebdc64c598b8f4a2f9d8c0ee09b913856d6efdb174c98029fb0df5f8930d1a86961d083d07f83a56f7cf7d5c81235dd65021bb5f2fb48b9491198bc1df593abd96aa52ecdd05dbc7037d4ade7a71344041e4e41172e23d136a9d71ac8414c87bc7f6e11f1f65c394d3

sr: 1600*900

encoding: UTF-8

prelt: 253

returntype: META

微博密码错误登陆post提交表单2

entry : weibo

gateway : 1

from :

savestate : 7

qrcode_flag :

false

useticket : 1

vsnf : 1

su :

MTU2MTEyNjkzMDA=

service :

miniblog

servertime :

1523498554

nonce : A52V6T

pwencode : rsa2

rsakv :

1330428213

sp :

40cafe904b1cdd57a84a93c1724816fb1321795025004a63a06d2025e2456c2f36921489b336722153f600ac292f34b5076801d13baca3408a8d97affd7e71c396d6ad8675d4399c7c623cc55dba95f4f9bfbec6b0b687c3b8509f4ecf38437f8cde9f0eda7a7af51216ae60868b0a02255de89a32fbffa5a7119b3ce3804a3b

sr : 1560*292

encoding : UTF-8

prelt : 253

returntype : META

微博密码正确登陆post提交表单1

entry : weibo

gateway : 1

from :

savestate : 7

qrcode_flag :

false

useticket : 1

vsnf : 1

su :

MTg1MTkxMDIxMjg=

service :

miniblog

servertime :

1523494219

nonce : I72RGO

pwencode : rsa2

rsakv :

1330428213

sp :

03606a86d93441ca4010afdd634fb223ab0b0adf2cb23c4b9ad5abad9759994e8f25952b729c5604653684b65df6be0b9a263fa2c3e7162d41ff5f6b9c2e8f78aa5af7e0130adb09c639b4ba18c87c2c4485c2eff6d49d50677213ed9c8a95c1ec92ce2b9940eefce35c607d341d154d4f7c4d84fecf41544d98bd600d75a713

sr : 1560*245

encoding : UTF-8

prelt : 286

returntype : META

微博密码正确登陆post提交表单2

entry : weibo

gateway : 1

from :

savestate : 7

qrcode_flag :

false

useticket : 1

vsnf : 1

su :

MTg1MTkxMDIxMjg=

service :

miniblog

servertime :

1523498140

nonce : LPGAKR

pwencode : rsa2

rsakv :

1330428213

sp :

9c282b232a43a2c48f155a74a84d92a26d98ccc0a5ed9db1ca5be573066e1926f52a085bb16ed1a5579bbeb11046234460180abdb72d7bec3ea31296a5137ce0ae75f68b264648657b95de33cac30acc861f48273c314865da39ab4893897709c95ac21a610b9d7c1a67a441fe596dfcf41b8dce736dd3aa12b08b8730c67168

sr : 1560*325

encoding : UTF-8

prelt : 233

returntype : META

通过对比上面四次请求,post提交的数据变化的变量(已经加粗)为:su,

severtime, nonce, sp, sr,

su : 登陆账号

sp : 密码

severtime :

10位的时间戳

sr : 看起来像分辨率

那么我们只需要搞定这四个变量就可以进行post提交post 提交网址url:

下面我们来寻找post表单变化变量的来源,一般除了账号、密码和时间戳,其他变量可能是服务器返回的,这就需要在post请求前寻找是否有其他请求;通过抓包发现,当我们输入登陆账号时,鼠标进点击密码输入框时,会对服务器进行一个get请求,请求地址是url1:

https://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=MTU2MTEyNjkzMDA=&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.19)&_=1523499638757

服务器返回的结果如下:

xectime : 18nonce : "HCJT81"pcid :

"tc-b317996356f74bca871f19d7b4dbe03092fe"pubkey

:"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443"retcode :0rsakv :"1330428213"servertime :

1523499640

在这个结果中我们可以得到nonce, servetime, rsakv这3个个变量正好对应post请求提交表单,同时还有个pubkey这个变量,可以联想到不对称加密,但是我们发现url1中包含有其他参数,这时候我们查看一下请求时提交的数据:

entry : weibo

callback :

sinaSSOController.preloginCallBack

su :

MTU2MTEyNjkzMDA=

rsakt : mod

checkpin : 1

client :

ssologin.js(v1.4.19)

_ : 1523499638757

发现提交至url1中的数据中,有su,以及 _ 两个动态变量需要解决

su :

账号,后面有‘=’,可能是base64转化的

‘-’ :13位的数字,可能是时间戳下面我们来实验一下:

su的解决

import base64

text = '15611269300'#表单提交数据一定是字符串型

trans_text = base64.b64encode(text.encode())#利用base64进行转换

su = trans_text.decode()

print(trans_text)

b'MTU2MTEyNjkzMDA='

发现经过base64转换的与上面的su一致,则su搞定。

13位时间戳的解决:

import time

time1 = time.time()

print('time1:小数点前10个数字,小数点后6个数字',time1)

time_13 = int(time1*1000)#将Time1扩大1000倍,取整,就可以得到13位时间戳

print('time_13:',time_13)

time1:小数点前10个数字,小数点后6个数字 1523517230.5778542

time_13: 1523517230577

到此为止,我们可以通过完成了get请求url1的表单,下面我们进行请求url来获得post请求表单:

import requests

import base64

import time

text = '15611269300'#表单提交数据一定是字符串型

username = base64.b64encode(text.encode()).decode()#利用base64进行转换

time1 = time.time()

time_13 = str(int(time1*1000))#将Time1扩大1000倍,取整,就可以得到13位时间戳

data = {

'entry' : 'weibo',

'callback' : 'sinaSSOController.preloginCallBack',

'su' : username,

'rsakt' : 'mod',

'checkpin' : '1',

'client' : 'ssologin.js(v1.4.19)',

'_ ': time_13

}

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'

}

url1 = 'https://login.sina.com.cn/sso/prelogin.php?'

session = requests.session()

r = session.get(url1,headers = headers,params = data)

r.recoding = r.apparent_encoding

text = r.text

print(text)

print(r.request.url)

sinaSSOController.preloginCallBack({"retcode":0,"servertime":1523519572,"pcid":"tc-c8353c60f8f52685c245352316cd9f0bdd10","nonce":"ZWC8R1","pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443","rsakv":"1330428213","exectime":13})

https://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=MTU2MTEyNjkzMDA=&rsakt=mod&checkpin=1&client=ssologin.js/(v1.4.19/)&/_+=1523519570815

import re

data1 = re.findall(r'CallBack\((.*?)\)',text)

print(data1)

['{"retcode":0,"servertime":1523519572,"pcid":"tc-c8353c60f8f52685c245352316cd9f0bdd10","nonce":"ZWC8R1","pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443","rsakv":"1330428213","exectime":13}']

data1[0]

'{"retcode":0,"servertime":1523519572,"pcid":"tc-c8353c60f8f52685c245352316cd9f0bdd10","nonce":"ZWC8R1","pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443","rsakv":"1330428213","exectime":13}'

import json

data2 = json.loads(data1[0])

print(data2)

{'retcode': 0, 'servertime': 1523519572, 'pcid': 'tc-c8353c60f8f52685c245352316cd9f0bdd10', 'nonce': 'ZWC8R1', 'pubkey': 'EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443', 'rsakv': '1330428213', 'exectime': 13}

type(data2)

dict

下面进行post请求表单的获取:

servertime = data2['servertime']

nonce = data2['nonce']

rsakv = data2['rsakv']

pubkey = data2['pubkey']#后面加密密码使用

print('servertime',servertime)

print('nonce',nonce)

print('rsakv',rsakv)

servertime 1523519572

nonce ZWC8R1

rsakv 1330428213

到此我们获得密码以外的post请求表单

进行密码加密:

通过查看js代码可以找到加密的代码如下:(查找代码小技巧,其中向下的箭头,快捷键F11,每点一次相当于执行js代码一步,我们可以刚开始只用F11进行查找,并结合碰到register就跳出,虽然过程比较多,但是可以详细查看代码执行步骤不容易错过重要信息等优点)

e.su = sinaSSOEncoder.base64.encode(urlencode(a));

var f = new sinaSSOEncoder.RSAKey;

f.setPublic(me.rsaPubkey, "10001");

b = f.encrypt([me.servertime, me.nonce].join("\t") + "\n" + b)

由上面js代码可以看出密码加密使用的是RSA加密me.rsaPubkey =

"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443"这与data2['pubkey']是相同的加密的内容包含:word = servertime + '\t' +

'nonce' + '\n' + 输入密码

rsaPubkey = int(pubkey,16)#进行转换

e = int('10001',16)  #进行转换 (可自行查找js代码)

print(rsaPubkey)

print()

print(e)

165138424261149263963666229661164814908887524950166142962960019363944425161240370251403452452001165143400173133423045791330687304650944332950460079059702342999940532642226896299225258939028313437520982527474148958262129523279095471616009516621824844891755906467794220597075349492626446841979774101805104112707

65537

import rsa

word = str(servertime)  + '\t' + str(nonce) + '\n' + '123456'

key = rsa.PublicKey(rsaPubkey,e) #生成公钥,2个参数,必须是整型

encrypt_text = rsa.encrypt(word.encode(),key)  #生成密码

print(encrypt_text)

b'\xe1\xe4\x08\xc1\x94\xed\x1baa\xc6\xa1\x93\x1aJ$\xf2{u{\x08\xdb3\x96C\xd0\x8e\xbd\x9aW\xfa\x1edLr\r\x16@\xca`-.^\x9e\x1c\xa8\xeci\x08\x0f\x04rW\xf7\xe1\x7fT\xde\xb8\x11\xe65\x944\xa4\x044\xde\xa1\xfc\xa2;\xb9\x1f\xb0\xc5T\xaa\xea\x88R\xf8\x03`\xb0L!\xd2\xf2\xf4\x98y{\xdb\xbd\x00\xc6\xaa\x16\x85ya[\xdc\x9b@\xd0\x00;\xc2H\xad\xf2h\x0bv\x85yvpF\x00_\xce\xd9I\xc8\xbb#'

我们得到的密码跟表单提交的并不同,我们将其进行16进制的转换

import binascii

sp = binascii.b2a_hex(encrypt_text).decode()

print(sp)

e1e408c194ed1b6161c6a1931a4a24f27b757b08db339643d08ebd9a57fa1e644c720d1640ca602d2e5e9e1ca8ec69080f047257f7e17f54deb811e6359434a40434dea1fca23bb91fb0c554aaea8852f80360b04c21d2f2f498797bdbbd00c6aa168579615bdc9b40d0003bc248adf2680b768579767046005fced949c8bb23

则post提交的表单为:

post_data = {

'entry': 'weibo',

'gateway': '1',

'from':'',

'savestate': '7',

'qrcode_flag': 'false',

'useticket': '1',

'pagerefer': 'https://login.sina.com.cn/crossdomain2.php?action=logout&r=https://weibo.com/logout.php?backurl=/',

'vsnf': '1',

'su': su,

'service': 'miniblog',

'servertime': servertime,

'nonce': nonce,

'pwencode': 'rsa2',

'rsakv': rsakv,

'sp': sp,

'sr': '1600*900',

'encoding': 'UTF-8',

'prelt': '253',

'url': 'https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',

'returntype': 'META'

}

import requests

import base64

import time

import re

import rsa

import binascii

import json

text = '自己的账号'#表单提交数据一定是字符串型

su = base64.b64encode(text.encode()).decode()#利用base64进行转换

time1 = time.time()

time_13 = str(int(time1*1000))#将Time1扩大1000倍,取整,就可以得到13位时间戳

data = {

'entry' : 'weibo',

'callback' : 'sinaSSOController.preloginCallBack',

'su' : su ,

'rsakt' : 'mod',

'checkpin' : '1',

'client' : 'ssologin.js(v1.4.19)',

'_ ': time_13

}

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'

}

url1 = 'https://login.sina.com.cn/sso/prelogin.php?'

session = requests.session()

r = session.get(url1,headers = headers,params = data)

r.encoding = r.apparent_encoding

text = r.text

data1 = re.findall(r'CallBack\((.*?)\)',text)

data2 = json.loads(data1[0])

servertime = data2['servertime']

nonce = data2['nonce']

rsakv = data2['rsakv']

pubkey = data2['pubkey']

rsaPubkey = int(pubkey,16)#进行转换

e = int('10001',16)  #进行转换 (可自行查找js代码)

password = '自己的密码'

word = str(servertime)  + '\t' + str(nonce) + '\n' + password

key = rsa.PublicKey(rsaPubkey,e) #生成公钥,2个参数,必须是整型

encrypt_text = rsa.encrypt(word.encode(),key)  #生成密码

sp = binascii.b2a_hex(encrypt_text).decode()

post_data = {

'entry': 'weibo',

'gateway': '1',

'from':'',

'savestate': '7',

'qrcode_flag': 'false',

'useticket': '1',

'pagerefer': 'https://login.sina.com.cn/crossdomain2.php?action=logout&r=https://weibo.com/logout.php?backurl=/',

'vsnf': '1',

'su': su,

'service': 'miniblog',

'servertime': servertime,

'nonce': nonce,

'pwencode': 'rsa2',

'rsakv': rsakv,

'sp': sp,

'sr': '1600*900',

'encoding': 'UTF-8',

'prelt': '253',

'url': 'https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',

'returntype': 'META'

}

post_url = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.19)'

r1 = session.post(post_url,data = post_data,headers = headers)

text1 = r1.text

print(text1)

发现出现乱码,utf_8不行,选择gbk

text1 = r1.content.decode('gbk')

print(text1)

发现post请求后,并不能登录成功,而在返回的文本中发现location.replace,则可能进行了页面跳转,通过抓包工具,发现在post请求以后,经过两次get请求得到如下返回内容:

sinaSSOController.doCrossDomainCallBack(

{"result":true,"userinfo":{"uniqueid":"5948680423","displayname":"\u751f\u547d\u7ec3\u4e60\u751f1001\u6b21"}});

表示此时才登陆成功。

两次get请求的url别分是post请求的,服务器返回的location.replace,以及之后第一次get请求得到的location.replace

获取post请求得到的location.replace:

place1_url = re.findall(r'location.replace\("(.*?)"\)',text1)#返回的是个列表

print(place1_url)

place_url1 = place1_url[0]

['https://login.sina.com.cn/crossdomain2.php?action=login&entry=weibo&r=https://passport.weibo.com/wbsso/login?ssosavestate=1555121555&url=https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&display=0&ticket=ST-NTk0ODY4MDQyMw==-1523585555-tc-A2891F8A58774B81D1E8AD4837F51845-1&retcode=0&sr=1600*900']

post之后第一个get请求

res1 = session.get(place_url1).content.decode('gbk')

print(res1)

正在登录 ...

post之后第一次get请求得到的location.replace:

place2_url = re.findall(r"location.replace\('(.*?)'\)",res1) #返回的是个列表,同时这里location.replace的url为单引号,注意修改正则表达式

print(place2_url)

place_url2 = place2_url[0]

print(place_url2)

['https://passport.weibo.com/wbsso/login?ssosavestate=1555122213&url=https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&display=0&ticket=ST-NTk0ODY4MDQyMw==-1523586213-tc-F177537D952EFE8AECCE391CBEC970D0-1&retcode=0']

https://passport.weibo.com/wbsso/login?ssosavestate=1555122213&url=https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&display=0&ticket=ST-NTk0ODY4MDQyMw==-1523586213-tc-F177537D952EFE8AECCE391CBEC970D0-1&retcode=0

post之后第二次get请求

res2 = session.get(place_url2) #如果访问不成功,可能是由于headers的原因

res2.encoding = res2.apparent_encoding

print(res2.text[:2000])

到此访问成功

import requests

import base64

import time

import re

import rsa

import binascii

import json

text = '自己的账号'#表单提交数据一定是字符串型

su = base64.b64encode(text.encode()).decode()#利用base64进行转换

time1 = time.time()

time_13 = str(int(time1*1000))#将Time1扩大1000倍,取整,就可以得到13位时间戳

data = {

'entry' : 'weibo',

'callback' : 'sinaSSOController.preloginCallBack',

'su' : su ,

'rsakt' : 'mod',

'checkpin' : '1',

'client' : 'ssologin.js(v1.4.19)',

'_ ': time_13

}

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'

}

url1 = 'https://login.sina.com.cn/sso/prelogin.php?'

session = requests.session()

r = session.get(url1,headers = headers,params = data)

r.encoding = r.apparent_encoding

text = r.text

data1 = re.findall(r'CallBack\((.*?)\)',text)

data2 = json.loads(data1[0])

servertime = data2['servertime']

nonce = data2['nonce']

rsakv = data2['rsakv']

pubkey = data2['pubkey']

rsaPubkey = int(pubkey,16)#进行转换

e = int('10001',16)  #进行转换 (可自行查找js代码)

password = '自己的密码'

word = str(servertime)  + '\t' + str(nonce) + '\n' + password

key = rsa.PublicKey(rsaPubkey,e) #生成公钥,2个参数,必须是整型

encrypt_text = rsa.encrypt(word.encode(),key)  #生成密码

sp = binascii.b2a_hex(encrypt_text).decode()

post_data = {

'entry': 'weibo',

'gateway': '1',

'from':'',

'savestate': '7',

'qrcode_flag': 'false',

'useticket': '1',

'pagerefer': 'https://login.sina.com.cn/crossdomain2.php?action=logout&r=https://weibo.com/logout.php?backurl=/',

'vsnf': '1',

'su': su,

'service': 'miniblog',

'servertime': servertime,

'nonce': nonce,

'pwencode': 'rsa2',

'rsakv': rsakv,

'sp': sp,

'sr': '1600*900',

'encoding': 'UTF-8',

'prelt': '253',

'url': 'https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',

'returntype': 'META'

}

post_url = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.19)'

r1 = session.post(post_url,data = post_data,headers = headers)

r1.encoding = r1.apparent_encoding

text1 = r1.text

place1_url = re.findall(r'location.replace\("(.*?)"\)',text1)#返回的是个列表

place_url1 = place1_url[0]

res1 = session.get(place_url1,headers =headers).content.decode('gbk')

place2_url = re.findall(r"location.replace\('(.*?)'\)",res1) #返回的是个列表,同时这里location.replace的url为单引号,注意修改正则表达式

place_url2 = place2_url[0]

res2 = session.get(place_url2,headers =headers)

res2.encoding = res2.apparent_encoding

print(res2.text)

查看是否访问成功:访问首页自己登录后的uniqueid/home

res3 = session.get('https://weibo.com/u/5948680423/home?')

res3.encoding = 'utf-8'

print(res3.text[:2000])

假如密码错误,post请求返回的网址为:

import requests

import base64

import time

import re

import rsa

import binascii

import json

text = '自己的账号'#表单提交数据一定是字符串型

su = base64.b64encode(text.encode()).decode()#利用base64进行转换

time1 = time.time()

time_13 = str(int(time1*1000))#将Time1扩大1000倍,取整,就可以得到13位时间戳

data = {

'entry' : 'weibo',

'callback' : 'sinaSSOController.preloginCallBack',

'su' : su ,

'rsakt' : 'mod',

'checkpin' : '1',

'client' : 'ssologin.js(v1.4.19)',

'_ ': time_13

}

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'

}

url1 = 'https://login.sina.com.cn/sso/prelogin.php?'

session = requests.session()

r = session.get(url1,headers = headers,params = data)

r.encoding = r.apparent_encoding

text = r.text

data1 = re.findall(r'CallBack\((.*?)\)',text)

data2 = json.loads(data1[0])

servertime = data2['servertime']

nonce = data2['nonce']

rsakv = data2['rsakv']

pubkey = data2['pubkey']

rsaPubkey = int(pubkey,16)#进行转换

e = int('10001',16)  #进行转换 (可自行查找js代码)

password = '错误的密码'

word = str(servertime)  + '\t' + str(nonce) + '\n' + password

key = rsa.PublicKey(rsaPubkey,e) #生成公钥,2个参数,必须是整型

encrypt_text = rsa.encrypt(word.encode(),key)  #生成密码

sp = binascii.b2a_hex(encrypt_text).decode()

post_data = {

'entry': 'weibo',

'gateway': '1',

'from':'',

'savestate': '7',

'qrcode_flag': 'false',

'useticket': '1',

'pagerefer': 'https://login.sina.com.cn/crossdomain2.php?action=logout&r=https://weibo.com/logout.php?backurl=/',

'vsnf': '1',

'su': su,

'service': 'miniblog',

'servertime': servertime,

'nonce': nonce,

'pwencode': 'rsa2',

'rsakv': rsakv,

'sp': sp,

'sr': '1600*900',

'encoding': 'UTF-8',

'prelt': '253',

'url': 'https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',

'returntype': 'META'

}

post_url = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.19)'

r1 = session.post(post_url,data = post_data,headers = headers)

text1 = r1.text

print(text1)

假如request请求时有证书验证,需要设置

verify = False

request.get(url,verify = False)

php rsa2 微博,微博登录分析相关推荐

  1. 「Python爬虫系列讲解」十一、基于登录分析的 Selenium 微博爬虫

    本专栏是以杨秀璋老师爬虫著作<Python网络数据爬取及分析「从入门到精通」>为主线.个人学习理解为主要内容,以学习笔记形式编写的. 本专栏不光是自己的一个学习分享,也希望能给您普及一些关 ...

  2. 微博登录显示服务器解析失败怎么办,微博air登录失败, air无法登录的原因 -电脑资料...

    最近一段时间出现微博air登录失败的情况频发,以下整理的微博air登录失败原因来自于微博air 和微博air官方客服的邮件回复,希望对大家有所帮助(据官方软件中关于应用的提示8月2日微博air受到网络 ...

  3. Android 用官方SDK实现第三方(qq、微信、微博)登录

    转载请标明原地址:http://blog.csdn.net/gaolei1201/article/details/44680291 可下载体验本人在项目中的实战运用:http://zhushou.36 ...

  4. 【毕业设计_课程设计】基于Django和vue的微博用户情感分析系统

    文章目录 0 项目说明 1 系统介绍 2 系统功能介绍 3 系统启动注意事项 4 项目工程 0 项目说明 基于Django和vue的微博用户情感分析系统 提示:适合用于课程设计或毕业设计,工作量达标, ...

  5. python高频词_python几万条微博高频词分析

    python几万条微博高频词分析 看到别人有做影视热评的分析统计,觉得挺好玩的,就来试试 看看效果 Screenshot_2018-05-21-11-00-42-879_com.master.wei. ...

  6. 500万条微博数据来源分析

    最近项目不是特别忙,想做一些微博方面的分析和处理工作,如果自己现爬取微博数据,积累数据比较慢,恰好看到北理工张华平老师分享的500万条微博数据,直接借用他的数据分析.下载地址是:http://www. ...

  7. 谷粒商城笔记+踩坑(17)——【认证模块】登录,用户名密码登录+微博社交登录+SpringSession+xxl-sso单点登录

    导航: 谷粒商城笔记+踩坑汇总篇 目录 5. 用户名密码登录 5.1[认证模块]登录业务 5.1.1 模型类,接收用户名密码 5.1.2 feign客户端新增登录功能 5.1.3 LoginContr ...

  8. python爬取微博评论并做词频分析_爬取李子柒微博评论并分析

    爬取李子柒微博评论并分析 微博主要分为网页端.手机端和移动端.微博网页版反爬太厉害,因此选择爬取手机端. 1 需求 爬取李子柒微博中视频的评论信息,并做词频分析. 2 方法 2.1 运行环境 运行平台 ...

  9. 微博快捷登录提示21322重定向地址不匹配(解决方案)

    微博快捷登录提示21322重定向地址不匹配(解决方案) 微博快捷登录提示21322重定向地址不匹配(解决方案) 微博快捷登录提示21322重定向地址不匹配(解决方案) 1.微博网页应用授权报错,代码: ...

  10. Python数据分析系列之——王一博微博转发量分析

    首先说明一下本人不是王一博粉丝,也不讨厌王一博,只是最近在学习python数据分析,就随便找了一条微博转发量来分析一下,只是刚好抽中了王一博哈~ 但是有些时候的确令人疑惑,为什么wyb随随便便发一条微 ...

最新文章

  1. chrome浏览器调试手机端h5页面
  2. 工业界 vs. 学术界: 一个年轻员工的视角
  3. python中xpath用法_Python中的xpath基础使用
  4. Linux学习之CentOS(一)--CentOS6.4环境搭建
  5. A. PHP文件运行原理
  6. Hbase RegionServer 启动失败 Time difference of xxx ms max allowed of 30000ms
  7. jsp java乱码转换_JSP中文乱码问题《转》
  8. Flutter修仙传第二章:路由详解
  9. Linux线程编程之生产者消费者问题【转】
  10. js封装cookie
  11. Python绘制中国地图
  12. 基于ThreeJS的3D地球
  13. 2021级新生个人训练赛第37场
  14. 解析少儿编程与创客教育的实战原理
  15. 根据生日定时发送生日祝福邮件
  16. Kernel启动流程源码解析 1 head.S
  17. W7 关闭 ss 无法上网 解决方法
  18. Tomcat 输入http://localhost:8080网页打不开
  19. Verilog基本语法——模块
  20. 忘记网站上的密码时怎么办?用Python如何快速帮你找回?

热门文章

  1. 熵、条件熵、互信息等概念
  2. 拓端tecdat|Matlab用BUGS马尔可夫区制转换Markov switching随机波动率SV模型、序列蒙特卡罗SMC、Metropolis Hastings采样分析时间序列数据
  3. 怎么安装winubuntu双系统_U盘安装ubuntu双系统及如何恢复Windows MBR教程
  4. (7)机器学习之make_bolbs
  5. pands库中的一些函数用法
  6. 自定义数据库连接池和Druid介绍
  7. 软件工程 第三章 需求分析
  8. Linux学习笔记(7)
  9. 生成式对抗网络论文阅读整理
  10. python实现随机产生数据矩阵,将txt文件写入Excel中以及转置后写入Excel中