Python模拟百度登录实例详解


Posted in Python onJanuary 20, 2016

最近公司产品和百度贴吧合作搞活动,为了增加人气,打算做个自动签到的小程序。这个是测试登录的代码,写的比较随意,仅实现了登录并读取关注贴吧列表,下边的就比较简单。

百度登录还是有点麻烦的,由于用的ssl,所以要先获取token,然后再登录,这个用finddle2分析下,还是比较好解决的。

# -*- coding: utf8 -*-
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 相关文章推荐
python批量提交沙箱问题实例
Oct 08 Python
Python实现获取某天是某个月中的第几周
Feb 11 Python
django模板语法学习之include示例详解
Dec 17 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
用于业余项目的8个优秀Python库
Sep 21 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
python实现斗地主分牌洗牌
Jun 22 Python
python获取带有返回值的多线程
May 02 Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 #Python
使用Python编写爬虫的基本模块及框架使用指南
Jan 20 #Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 #Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 #Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 #Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 #Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 #Python
You might like
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python3.6简单反射操作示例
2018/06/14 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
关于随地扔垃圾的检讨书
2014/09/30 职场文书
2014年督导工作总结
2014/11/19 职场文书
求职自荐信怎么写
2015/03/04 职场文书
开业典礼致辞
2015/07/29 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
如何利用python创作字符画
2022/06/25 Python