新浪微博登陆以及发送微博(附python源码)
原文链接(本人):https://blog.csdn.net/A5878989/article/details/76275855
说明
本文主要记录分析新浪微博登陆以及发送文字和图片微博的详细过程
分析
登陆入口选择的是新浪通行证登陆入口
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%2Fupimgback.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
参数和响应

新浪微博登陆以及发送微博(附python源码)的更多相关文章
- 微信小程序自动化测试最佳实践(附 Python 源码)
本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程 ...
- 最优路径算法合集(附python源码)(原创)
主要的最优(最短)路径算法: 一.深度优先算法:二.广度优先算法:三.Dijstra最短路径:四.floyd最短路径(待): 一.深度优先算法 图的深度优先搜索(Depth First Search) ...
- 分享一个难得的YiBo微博客户端应用源码Android版
今天给大家分享一款,YiBo微博客户端应用源码,这是一款专为Android用户打造的聚合型微博客户端,完美支持新浪微博.腾讯微博.搜狐微博.网易微博和饭否五个微博平台,界面清爽,使用简单轻巧,支持多账 ...
- Asp.net MVC集成Google Calendar API(附Demo源码)
Asp.net MVC集成Google Calendar API(附Demo源码) Google Calendar是非常方便的日程管理应用,很多人都非常熟悉.Google的应用在国内不稳定,但是在国外 ...
- python源码书籍
<Python源码剖析>一书现在很难买到,目前大部分都是电子书. 为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Pytho ...
- 读python源码--对象模型
学python的人都知道,python中一切皆是对象,如class生成的对象是对象,class本身也是对象,int是对象,str是对象,dict是对象....所以,我很好奇,python是怎样实现这些 ...
- VS2013编译python源码
系统:win10 手头有个python模块,是用C写的,想编译安装就需要让python调用C编译器.直接编译发现使用的是vc9编译,不支持C99标准(两个槽点:为啥VS2008都还不支持C99?手头这 ...
- 三种排序算法python源码——冒泡排序、插入排序、选择排序
最近在学习python,用python实现几个简单的排序算法,一方面巩固一下数据结构的知识,另一方面加深一下python的简单语法. 冒泡排序算法的思路是对任意两个相邻的数据进行比较,每次将最小和最大 ...
- 《python源码剖析》笔记一——python编译
1.python的架构: 2.python源码的组织结构: 3.windows环境下编译python:
随机推荐
- 【CF429E】 Points and Segments(欧拉回路)
传送门 CodeForces 洛谷 Solution 考虑欧拉回路有一个性质. 如果把点抽出来搞成一条直线,路径看成区间覆盖,那么一个点从左往右被覆盖的次数等于从右往左被覆盖的次数. 发现这个性质和本 ...
- 白话TCP为什么需要进行三次握手
阅读本文大概需要 2.3 分钟. 作者:雨林 https://www.cnblogs.com/yuilin 首先简单介绍一下TCP三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次 ...
- 聊一聊Java如何接入招行一网通支付功能
1.前提条件 相比较于支付宝和微信的支付功能接入这一块,银行相对来说更加严格,比如说支付宝,在你签约之前可以进行一些测试.但是银行来说就不是这样了,如果您现在要进行招行的支付功能开发的话,请务必先让相 ...
- 简单粗暴的JavaScript笔记-1
欢迎到我的简书查看我的文集 前言: 提示密码提示框 <head> <style> #div1 {width: 100px;height:50px;background:#FFC ...
- spring中的mybatis的sqlSession是如何做到线程隔离的?
项目中常常使用mybatis配合spring进行数据库操作,但是我们知道,数据的操作是要求做到线程安全的,而且按照原来的jdbc的使用方式,每次操作完成之后都要将连接关闭,但是实际使用中我们并没有这么 ...
- 原生JS-旋转木马
原生JS-旋转木马 今天写一个原生JS写的旋转木马JS效果. 实现原理: 1.建立一个数组给每一张图片写对应的z-index,opacity,top,width: 2.实现旋转的操作是把建造的数组里面 ...
- 开发中常用js记录(三)
(1)Jquery 判断一个元素下是否有指定的class$('div').is('.classname')$('div').hasClass('redColor') (2)获得窗口长宽等$(windo ...
- redis简单应用
启动和结束 --启动redis服务 E:\redis>redis-server.exe redis.windows.conf --结束redis服务 127.0.0.1:6379> shu ...
- springboot 与 shiro 整合 (简洁版)
前言: 网上有很多springboot 与 shiro 整合的资料,有些确实写得很好, 对学习shiro和springboot 都有很大的帮助. 有些朋友比较省事, 直接转发或者复制粘贴.但是没有经过 ...
- Docker 快速入门之 Dockerfile
在 Docker 中我们可以从名为 Dockerfile 的文件中读取指令并且自动构建镜像.在本文中,将介绍 Dockerfile 的基本语法以及基本知识. Dockerfile 是什么 Docker ...