模拟登陆新浪微博
来源:互联网 发布:网络与新媒体什么工作 编辑:程序博客网 时间:2024/04/28 07:46
代码:
import re , urllib.parse , urllib.request , http.cookiejar , base64 , binascii , rsa,time cj = http.cookiejar.LWPCookieJar()cookie_support = urllib.request.HTTPCookieProcessor(cj)opener = urllib.request.build_opener(cookie_support , urllib.request.HTTPHandler)urllib.request.install_opener(opener) def getData(url) : request = urllib.request.Request(url) response = urllib.request.urlopen(request) text = response.read().decode('utf-8') return text def postData(url , data) : headers = {'User-Agent' : 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'} data = urllib.parse.urlencode(data).encode('utf-8') request = urllib.request.Request(url , data , headers) response = urllib.request.urlopen(request) text = response.read().decode('gbk') return text def login_weibo(nick , pwd) : prelogin_url = 'http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=%s&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.15)&_=1400822309846' % nick preLogin = getData(prelogin_url) servertime = re.findall('"servertime":(.*?),' , preLogin)[0] pubkey = re.findall('"pubkey":"(.*?)",' , preLogin)[0] rsakv = re.findall('"rsakv":"(.*?)",' , preLogin)[0] nonce = re.findall('"nonce":"(.*?)",' , preLogin)[0] su = base64.b64encode(bytes(urllib.request.quote(nick) , encoding = 'utf-8')) rsaPublickey = int(pubkey , 16) key = rsa.PublicKey(rsaPublickey , 65537) message = bytes(str(servertime) + '\t' + str(nonce) + '\n' + str(pwd) , encoding = 'utf-8') sp = binascii.b2a_hex(rsa.encrypt(message , key)) param = {'entry' : 'weibo' , 'gateway' : 1 , 'from' : '' , 'savestate' : 7 , 'useticket' : 1 , 'pagerefer' : 'http://login.sina.com.cn/sso/logout.php?entry=miniblog&r=http%3A%2F%2Fweibo.com%2Flogout.php%3Fbackurl%3D' , 'vsnf' : 1 , 'su' : su , 'service' : 'miniblog' , 'servertime' : servertime , 'nonce' : nonce , 'pwencode' : 'rsa2' , 'rsakv' : rsakv , 'sp' : sp , 'sr' : '1680*1050' , 'encoding' : 'UTF-8' , 'prelt' : 961 , 'url' : 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack'} s = postData('http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)' , param) urll = re.findall("location.replace\(\'(.*?)\'\);" , s)[0] getData(urll)
登陆 账号 密码
login_weibo('15622597574' , '*********')
0 0
- 模拟新浪微博登陆
- 模拟登陆新浪微博
- 新浪微博模拟登陆的加密算法
- 模拟新浪微博自动登陆
- snoopy模拟登陆新浪微博
- snoopy 模拟新浪微博登陆
- 新浪微博JAVA代码模拟登陆
- 2015_3G新浪微博模拟登陆
- 新浪微博模拟登陆 java
- python新浪微博模拟登陆
- Java实现新浪微博模拟登陆
- [Javascript] 爬虫 模拟新浪微博登陆
- 模拟登陆手机版新浪微博
- Python模拟登陆新浪微博
- 新浪微博模拟登陆分析
- 新浪微博模拟登陆并发文
- Python_模拟登陆新浪微博
- 使用HtmlUnit模拟登陆新浪微博
- 01-复杂度1 最大子列和问题 (20分)
- 堆排序
- 算法课第11周第1题——120. Triangle
- JAVA集合(List,Map.Set)相关操作
- Cocos2d-x v3.10安装及安卓开发环境搭建
- 模拟登陆新浪微博
- zookeeper原理
- linux 目录结构
- 我的第一个Java代码记录
- http控制内容-传输控制
- c++ vector用法
- win7和linux mint双系统安装总结
- 2017 CCPC 女生专场(重现)
- 欢迎使用CSDN-markdown编辑器