您的位置:首页 > 编程语言 > Python开发

新浪微博登陆以及发送微博(附python源码)

2017-07-28 19:08 357 查看
说明

本文主要记录分析新浪微博登陆以及发送文字和图片微博的详细过程


分析

登陆入口选择的是新浪通行证登陆入口 https://login.sina.com.cn/signup/signin.php 抓包找到登陆请求 https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1501239862897


登陆参数和响应



登陆肯定少不了用户名和密码,这些参数中符合条件的只有su 和sp,su可以猜测base64编码的,解码后得到了我的账户名,sp肯定是加密后的密码,但是需要知道加密方式然而pwencode参数告诉我们是RSA加密,既然时非对称加密,所有肯定需要获取公钥,而且客户端肯定有登陆操作时加密等操作的代码。client参数已经很明显了,需要去找到这个js文件。找到ssologin.js文件之后就不用猜了,直接分析代码了


关键代码



通过分析代码可以知道用户名是urlencode之后再base64编码,密码是几个变量和密码拼接之后用公钥加密的,所以登陆之前肯定需要获取变量和公钥

登陆之前请求 https://login.sina.com.cn/sso/prelogin.php?entry=account&callback=sinaSSOController.preloginCallBack&su=ODkxOTkyNDg5ZnclNDBzaW5hLmNu&rsakt=mod&client=ssologin.js(v1.4.15)&_=1501239861950


请求参数和响应



可以看到返回登陆所需要的一些变量,公钥等等(需要注意的是返回的公钥是十六进制的需要转换,构造公钥的时候10001也可直接替换为65537)


登陆成功的请求是这样的



登陆成功之后返回uid以及需要重定向的地址。
发送微博 http://weibo.com/aj/mblog/add?ajwvr=6&__rnd=1501242956000


发送微博请求



pic_id即图片id,这个id是在上传图片的时候返回的

上传图片 http://picupload.weibo.com/interface/pic_upload.php?cb=http%3A%2F%2Fweibo.com%2Faj%2Fstatic%2Fupimgb 4000
ack.html%3F_wv%3D5%26callback%3DSTK_ijax_150124497795341&mime=image%2Fjpeg&data=base64&url=0&markpos=1&logo=&nick=%40%E4%B8%96%E7%95%8C%E9%82%A3%E9%BA%BC%E5%A4%A7_&marks=0&app=miniblog&s=rdxt


参数和响应



具体效果就可以看我微博传送门

源码下载

下载地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: