python模拟登录百度代码分享(获取百度贴吧等级)


Posted in Python onDecember 27, 2013
# -*- coding: utf8 -*-
'''
Created on 2013-12-19
@author: good-temper
'''
import urllib2
import urllib
import cookielib
import re
import bs4
URL_BAIDU_INDEX = u'http://www.baidu.com/';
#https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=true 也可以用这个
URL_BAIDU_TOKEN = 'https://passport.baidu.com/v2/api/?getapi&tpl=pp&apiver=v3&class=login';
URL_BAIDU_LOGIN = 'https://passport.baidu.com/v2/api/?login';
#设置用户名、密码
username = '';
password = '';
#设置cookie,这里cookiejar可自动管理,无需手动指定
cj = cookielib.CookieJar();
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));
urllib2.install_opener(opener);
reqReturn = urllib2.urlopen(URL_BAIDU_INDEX);
#获取token,
tokenReturn = urllib2.urlopen(URL_BAIDU_TOKEN);
matchVal = re.search(u'"token" : "(?P<tokenVal>.*?)"',tokenReturn.read());
tokenVal = matchVal.group('tokenVal');
#构造登录请求参数,该请求数据是通过抓包获得,对应https://passport.baidu.com/v2/api/?login请求
postData = {
    'username' : username,
    'password' : password,
    'u' : 'https://passport.baidu.com/',
    'tpl' : 'pp',
    'token' : tokenVal,
    'staticpage' : 'https://passport.baidu.com/static/passpc-account/html/v3Jump.html',
    'isPhone' : 'false',
    'charset' : 'UTF-8',
    'callback' : 'parent.bd__pcbs__ra48vi'
    };
postData = urllib.urlencode(postData);
#发送登录请求
loginRequest = urllib2.Request(URL_BAIDU_LOGIN,postData);
loginRequest.add_header('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
loginRequest.add_header('Accept-Encoding','gzip,deflate,sdch');
loginRequest.add_header('Accept-Language','zh-CN,zh;q=0.8');
loginRequest.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36');
loginRequest.add_header('Content-Type','application/x-www-form-urlencoded');
sendPost = urllib2.urlopen(loginRequest);
#查看贴吧个人主页 ,测试是否登陆成功,由于cookie自动管理,这里处理起来方便很多
#http://tieba.baidu.com/home/main?un=XXXX&fr=index 这个是贴吧个人主页,各项信息都可以在此找到链接
teibaUrl = 'http://tieba.baidu.com/f/like/mylike?v=1387441831248'
content = urllib2.urlopen(teibaUrl).read();
content = content.decode('gbk').encode('utf8');
print content;
#解析数据,用的BeautifulSoup4,感觉没有jsoup用的爽
soup = bs4.BeautifulSoup(content);
list = soup.findAll('tr');
list = list[1:len(list)];
careTeibalist = [];
print '贴吧链接\t吧名\t等级';
for elem in list:
    soup1 = bs4.BeautifulSoup(str(elem));
    print 'http://tieba.baidu.com/'+soup1.find('a')['href']+'\t'+soup1.find('a')['title']+'\t'+soup1.find('a',{'class','like_badge'})['title'];
Python 相关文章推荐
使用requests库制作Python爬虫
Mar 25 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
Python Excel处理库openpyxl使用详解
May 09 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
django框架cookie和session用法实例详解
Dec 10 Python
python读取ini配置的类封装代码实例
Jan 08 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 Python
Django权限控制的使用
Jan 07 Python
python读文件逐行处理的示例代码分享
Dec 27 #Python
python调用cmd复制文件代码分享
Dec 27 #Python
win7安装python生成随机数代码分享
Dec 27 #Python
python正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 #Python
python正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 #Python
python正则表达式判断字符串是否是全部小写示例
Dec 25 #Python
netbeans7安装python插件的方法图解
Dec 24 #Python
You might like
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
jquery获取radio值实例
2014/10/16 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
移动端界面的适配
2017/01/11 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
跟老齐学Python之变量和参数
2014/10/10 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
在python中修改.properties文件的操作
2020/04/08 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
Python如何操作docker redis过程解析
2020/08/10 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
管理站站长岗位职责
2013/11/27 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
物理教学随笔感言
2014/02/22 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
大学生在校表现评语
2014/12/31 职场文书
婚礼答谢词
2015/01/04 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
网络营销实训总结
2015/08/03 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python