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之从格式化表达式到方法
Sep 28 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
使用Python操作excel文件的实例代码
Oct 15 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python频繁写入文件时提速的方法
Jun 26 Python
python3.6编写的单元测试示例
Aug 17 Python
Python Django2.0集成Celery4.1教程
Nov 19 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 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
javascript 简练的几个函数
2009/08/29 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
JPype实现在python中调用JAVA的实例
2017/07/19 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Django中create和save方法的不同
2019/08/13 Python
python设置随机种子实例讲解
2019/09/12 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
Python实现像awk一样分割字符串
2020/09/15 Python
python 5个实用的技巧
2020/09/27 Python
Python中pass的作用与使用教程
2020/11/13 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
文明风采获奖感言
2014/02/18 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
企业安全生产承诺书
2014/05/22 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
生产实习心得体会范文
2016/01/22 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android
Oracle中DBLink的详细介绍
2022/04/29 Oracle