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 相关文章推荐
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python实现图片转字符画的示例代码
Aug 21 Python
python生成随机图形验证码详解
Nov 08 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
Python玩转加密的技巧【推荐】
May 13 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
python 字符串常用函数详解
Sep 11 Python
python如何使用Redis构建分布式锁
Jan 16 Python
Python双链表原理与实现方法详解
Feb 22 Python
python实现移动木板小游戏
Oct 09 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 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
深入PHP数据加密详解
2013/06/18 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
javascript 写类方式之八
2009/07/05 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
Python字符串格式化
2015/06/15 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
Python语言描述随机梯度下降法
2018/01/04 Python
浅析python参数的知识点
2018/12/10 Python
python dict 相同key 合并value的实例
2019/01/21 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
用python制作个音乐下载器
2021/01/30 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
个人自我评价和职业目标
2014/01/24 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
环保倡议书50字
2014/05/15 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers