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 相关文章推荐
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
python多进程实现进程间通信实例
Nov 24 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
python实现爬取图书封面
Jul 05 Python
python简单验证码识别的实现方法
May 10 Python
python实现BP神经网络回归预测模型
Aug 09 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
python适合做数据挖掘吗
Jun 16 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
图神经网络GNN算法
May 11 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
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
React实现轮播效果
2020/08/25 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
办公室主任岗位职责
2013/11/08 职场文书
农民致富事迹材料
2014/01/23 职场文书
淘宝客服自我总结鉴定
2014/01/25 职场文书
技术员岗位职责
2015/02/04 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
Python与C++中梯度方向直方图的实现
2022/03/17 Python
element tree树形组件回显数据问题解决
2022/08/14 Javascript