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使用append合并两个数组的方法
Apr 28 Python
Python实现方便使用的级联进度信息实例
May 05 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
详解Python3注释知识点
Feb 19 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
简单了解python变量的作用域
Jul 30 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
Django REST Framework之频率限制的使用
Sep 29 Python
django框架cookie和session用法实例详解
Dec 10 Python
python global和nonlocal用法解析
Feb 03 Python
5行Python代码实现一键批量扣图
Jun 29 Python
Python实现老照片修复之上色小技巧
Oct 16 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
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
Yii rules常用规则示例
2016/03/15 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
JS 动态加载脚本的4种方法
2009/05/05 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
python二分法实现实例
2013/11/21 Python
Python tkinter事件高级用法实例
2018/01/31 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
python实现简单日期工具类
2019/04/24 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
python读写csv文件的方法
2019/08/13 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
Shell如何接收变量输入
2016/08/06 面试题
小车司机岗位职责
2013/11/25 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
社区平安建设方案
2014/05/25 职场文书
总经理人事任命书
2014/06/05 职场文书
争先创优活动总结
2014/08/27 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
检讨书范文
2019/04/16 职场文书
Python基础之数据结构详解
2021/04/28 Python
Python数据分析之pandas读取数据
2021/06/02 Python
python中subplot大小的设置步骤
2021/06/28 Python