码迷,mamicode.com
首页 > 其他好文 > 详细

模拟微博登录

时间:2017-12-28 12:03:12      阅读:593      评论:0      收藏:0      [点我收藏+]

标签:iphone   失败   encode   ...   save   err   控制   headers   read   

先读取登录的邮箱和口令,然后按照weibo.cn的登录页的格式以username=xxx&password=xxx的编码传入:

from urllib import request, parse

print(Login to weibo.cn...)
email = input(Email: )
passwd = input(Password: )
login_data = parse.urlencode([
    (username, email),
    (password, passwd),
    (entry, mweibo),
    (client_id, ‘‘),
    (savestate, 1),
    (ec, ‘‘),
    (pagerefer, https://passport.weibo.cn/signin/welcome?entry=mweibo&r=http%3A%2F%2Fm.weibo.cn%2F)
])

req = request.Request(https://passport.weibo.cn/sso/login)
req.add_header(Origin, https://passport.weibo.cn)
req.add_header(User-Agent, Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25)
req.add_header(Referer, https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=http%3A%2F%2Fm.weibo.cn%2F)

with request.urlopen(req, data=login_data.encode(utf-8)) as f:
    print(Status:, f.status, f.reason)
    for k, v in f.getheaders():
        print(%s: %s % (k, v))
    print(Data:, f.read().decode(utf-8))

如果登录成功,我们获得的响应如下:

Status: 200 OK
Server: nginx/1.2.0
...
Set-Cookie: SSOLoginState=1432620126; path=/; domain=weibo.cn
...
Data: {"retcode":20000000,"msg":"","data":{...,"uid":"1658384301"}}

如果登录失败,我们获得的响应如下:

...
Data: {"retcode":50011015,"msg":"\u7528\u6237\u540d\u6216\u5bc6\u7801\u9519\u8bef","data":{"username":"example@python.org","errline":536}}

Handler

如果还需要更复杂的控制,比如通过一个Proxy去访问网站,我们需要利用ProxyHandler来处理,示例代码如下:

proxy_handler = urllib.request.ProxyHandler({http: http://www.example.com:3128/})
proxy_auth_handler = urllib.request.ProxyBasicAuthHandler()
proxy_auth_handler.add_password(realm, host, username, password)
opener = urllib.request.build_opener(proxy_handler, proxy_auth_handler)
with opener.open(http://www.example.com/login.html) as f:
    pass

 

模拟微博登录

标签:iphone   失败   encode   ...   save   err   控制   headers   read   

原文地址:https://www.cnblogs.com/ncuhwxiong/p/8133812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!