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传递参数方式小结
Apr 17 Python
简析Python的闭包和装饰器
Feb 26 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
python中tab键是什么意思
Jun 18 Python
深入分析python 排序
Aug 24 Python
python 如何停止一个死循环的线程
Nov 24 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 Python
python如何实现递归转非递归
Feb 25 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安全配置
2006/10/09 PHP
一个简单计数器的源代码
2006/10/09 PHP
php设计模式小结
2013/02/15 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
SVG实现时钟效果
2018/07/17 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
详解在Python和IPython中使用Docker
2015/04/28 Python
python频繁写入文件时提速的方法
2019/06/26 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
小学生民族团结演讲稿
2014/08/27 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android