python_2018最新版本微博登陆
2018-05-13 本文已影响0人
随风而去_c0e8
嗨,大家好
![](https://img.haomeiwen.com/i5407424/eeb62aa5a4ea56fa.png)
听说微博登陆很难,就想试试 确实挺复杂的
废话不多说,直接撸代码,以下是2.7版本的 需要3的自己改把
![](https://img.haomeiwen.com/i5407424/6b32c2c70d7c1e11.png)
def init(self, user, password, cookie_path) 这是初始化函数在调用这个类的时候函数会自动运行 里面初始化了账号和密码 最后又调用了login函数
![](https://img.haomeiwen.com/i5407424/c1e3303185ef0c63.png)
首先调用了 try:....except: 语法 语法是先运行try部分的代码,如果出错就运行except代码
先说try部分 #140 调用pre_login()
![](https://img.haomeiwen.com/i5407424/e710e339b449501f.png)
get_su()是根据网站的源码分析发现 需要提供加密后的用户名,把用户名进行加密处理
![](https://img.haomeiwen.com/i5407424/cc145904b0ae6381.png)
get_server_data(self, su):
![](https://img.haomeiwen.com/i5407424/184e0d75be0f9512.png)
get_server_data获取加密的用户后,进行预登陆访问获取之后请求需要的参数
![](https://img.haomeiwen.com/i5407424/9a816aa7e4fd519a.png)
![](https://img.haomeiwen.com/i5407424/2d3e813324204d67.png)
get_password也是从js源码分析得出加密方式
![](https://img.haomeiwen.com/i5407424/6847ef472b776e41.png)
构造请求的数据包
![](https://img.haomeiwen.com/i5407424/396677d93be9dadf.png)
拼接url通过post请求,发送数据包
提取返回的数据中ticket的value值
如果发生错误大多数是因为需要验证码的原因
![](https://img.haomeiwen.com/i5407424/349daed1e1976590.png)
获取验证码图片,人工输入验证码
最后
![](https://img.haomeiwen.com/i5407424/a2f37542e5323903.png)
就是简单的整理数据包提交
这就是目前微博登陆的过程,亲测有效哦