Python模拟微博登陆,亲测有效
2019-03-18 本文已影响118人
9ba4bd5525b9
在提交POST请求之前, 需要GET 获取两个参数。
地址是:http://login.sina.com.cn/sso/...
得到的数据中有 servertime 和 nonce 的值, 是随机的,其他值貌似没什么用。
2.
通过httpfox 观察POST 的数据, 参数较复杂,其中 “su" 是加密后的username, sp 是加密后的password。servertime 和 nonce 是上一步得到的。其他参数是不变的。
username 经过了BASE64 计算:
username = base64.encodestring( urllib.quote(username) )[:-1]
password 经过了三次SHA1 加密, 且其中加入了 servertime 和 nonce 的值来干扰。
即: 两次SHA1加密后, 将结果加上 servertime 和 nonce 的值, 再SHA1 算一次。
3.
将参数组织好, POST请求。 这之后还没有登录成功。
POST后得到的内容中包含一句:
这是登录失败时的结果, 登录成功后结果与之类似, 不过retcode 的值是0 。
接下来再请求这个URL,这样就成功登录到微博了。
记得要提前build 缓存。