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编码总结(编码类型、格式、转码)
Jul 01 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
python执行精确的小数计算方法
Jan 21 Python
Python 给屏幕打印信息加上颜色的实现方法
Apr 24 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
python 递归调用返回None的问题及解决方法
Mar 16 Python
python 负数取模运算实例
Jun 03 Python
pycharm全局搜索的具体步骤
Jul 28 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设计模式 Strategy(策略模式)
2011/06/26 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
Yii实现简单分页的方法
2016/04/29 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
jcrop基本参数一览
2013/07/16 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
python输出带颜色字体实例方法
2019/09/01 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
求职者应聘的自我评价
2013/10/16 职场文书
学校元旦晚会方案
2014/02/19 职场文书
捐资助学倡议书
2014/04/15 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
授权委托书怎么写
2014/09/25 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书