python模拟登录百度贴吧(百度贴吧登录)实例


Posted in Python onDecember 18, 2013

 

# -*- coding:utf-8 -*-
# python3.3.3
import sys,time,re,urllib.parse,urllib.request,http.cookiejar,random,math,os.path,hashlib,json,binascii,threading
"""cookie"""
cookie=http.cookiejar.LWPCookieJar()
#cookie.load('f:/cookie.txt',True,True)
chandle=urllib.request.HTTPCookieProcessor(cookie)
"""获取数据"""
def getData(url):
    r=urllib.request.Request(url)
    opener=urllib.request.build_opener(chandle)
    u=opener.open(r)
    #chandle.cookiejar.save('f:/cookie.txt',True,True)
    data=u.read()
    try:
        data=data.decode('utf-8')
    except:
        data=data.decode('gbk','ignore')
    return data
def postData(url,data):
    data=urllib.parse.urlencode(data);data=bytes(data,'utf-8')
    r=urllib.request.Request(url,data)
    opener=urllib.request.build_opener(chandle)
    u=opener.open(r)
    #chandle.cookiejar.save('f:/cookie.txt',True,True)
    data=u.read()
    try:
        data=data.decode('utf-8')
    except:
        data=data.decode('gbk','ignore')
    return data
def login(name,pwd):
    url='http://www.baidu.com'
    getData(url)
    par={
        "apiver":'v3',
        "callback":'bd__cbs__oug2fy',
        "class":'login',
        "logintype":'dialogLogin',
        "tpl":'tb',
        "tt":'1385013373144'
    }
    url='https://passport.baidu.com/v2/api/?getapi&%s' % urllib.parse.urlencode(par)
    token=re.findall('"token" : "(.*?)"',getData(url))[0]
    par.update({"isphone":'false',"username":name,"token":token})
    url='https://passport.baidu.com/v2/api/?logincheck&?%s' % urllib.parse.urlencode(par)
    data={
        "charset":'GBK',
        "mem_pass":'on',
        "password":pwd,
        "ppui_logintime":'1612376',
        "quick_user":'0',
        "safeflg":'0',
        "splogin":'rate',
        "u":'http://tieba.baidu.com/'
    }
    url='https://passport.baidu.com/v2/api/?login'
    par.update(data)
    bdu=re.findall('hao123Param=(.*?)&',postData(url,par))[0]
    par={
        "bdu":bdu,
        "t":'1385013373144'
    }
    url='http://user.hao123.com/static/crossdomain.php?%s' % urllib.parse.urlencode(par)
    getData(url)
    print(json.loads(getData('http://tieba.baidu.com/f/user/json_userinfo')))
"""------输入帐号密码------"""
login('帐号','密码')
# -*- coding:utf-8 -*-
# python3.3.3
import sys,time,re,urllib.parse,urllib.request,http.cookiejar,random,math,os.path,hashlib,json,binascii,threading
"""cookie"""
cookie=http.cookiejar.LWPCookieJar()
#cookie.load('f:/cookie.txt',True,True)
chandle=urllib.request.HTTPCookieProcessor(cookie)
"""获取数据"""
def getData(url):
    r=urllib.request.Request(url)
    opener=urllib.request.build_opener(chandle)
    u=opener.open(r)
    #chandle.cookiejar.save('f:/cookie.txt',True,True)
    data=u.read()
    try:
        data=data.decode('utf-8')
    except:
        data=data.decode('gbk','ignore')
    return data
def postData(url,data):
    data=urllib.parse.urlencode(data);data=bytes(data,'utf-8')
    r=urllib.request.Request(url,data)
    opener=urllib.request.build_opener(chandle)
    u=opener.open(r)
    #chandle.cookiejar.save('f:/cookie.txt',True,True)
    data=u.read()
    try:
        data=data.decode('utf-8')
    except:
        data=data.decode('gbk','ignore')
    return data
def login(name,pwd):
    url='http://www.baidu.com'
    getData(url)
    par={
        "apiver":'v3',
        "callback":'bd__cbs__oug2fy',
        "class":'login',
        "logintype":'dialogLogin',
        "tpl":'tb',
        "tt":'1385013373144'
    }
    url='https://passport.baidu.com/v2/api/?getapi&%s' % urllib.parse.urlencode(par)
    token=re.findall('"token" : "(.*?)"',getData(url))[0]
    par.update({"isphone":'false',"username":name,"token":token})
    url='https://passport.baidu.com/v2/api/?logincheck&?%s' % urllib.parse.urlencode(par)
    data={
        "charset":'GBK',
        "mem_pass":'on',
        "password":pwd,
        "ppui_logintime":'1612376',
        "quick_user":'0',
        "safeflg":'0',
        "splogin":'rate',
        "u":'http://tieba.baidu.com/'
    }
    url='https://passport.baidu.com/v2/api/?login'
    par.update(data)
    bdu=re.findall('hao123Param=(.*?)&',postData(url,par))[0]
    par={
        "bdu":bdu,
        "t":'1385013373144'
    }
    url='http://user.hao123.com/static/crossdomain.php?%s' % urllib.parse.urlencode(par)
    getData(url)
    print(json.loads(getData('http://tieba.baidu.com/f/user/json_userinfo')))
"""------输入帐号密码------"""
login('帐号','密码')
Python 相关文章推荐
python有证书的加密解密实现方法
Nov 19 Python
Python实现购物车功能的方法分析
Nov 10 Python
Python实现常见的回文字符串算法
Nov 14 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
python3调用windows dos命令的例子
Aug 14 Python
Flask框架请求钩子与request请求对象用法实例分析
Nov 07 Python
django序列化serializers过程解析
Dec 14 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
matplotlib更改窗口图标的方法示例
Feb 03 Python
python抓取京东商城手机列表url实例代码
Dec 18 #Python
python获取糗百图片代码实例
Dec 18 #Python
python算法学习之计数排序实例
Dec 18 #Python
python算法学习之基数排序实例
Dec 18 #Python
python算法学习之桶排序算法实例(分块排序)
Dec 18 #Python
python计算最大优先级队列实例
Dec 18 #Python
python计算最小优先级队列代码分享
Dec 18 #Python
You might like
浅析get与post的一些特殊情况
2014/07/28 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
js实现日历与定时器
2017/02/22 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
python3库numpy数组属性的查看方法
2018/04/17 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
自我鉴定范文200字
2013/10/02 职场文书
应届生污水处理求职信
2013/11/06 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
毕业证代领委托书
2014/09/26 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
python基础之类属性和实例属性
2021/10/24 Python
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android