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函数参数*args**kwargs用法实例
Dec 04 Python
介绍Python中的__future__模块
Apr 27 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
Python实现识别图片内容的方法分析
Jul 11 Python
python简单操作excle的方法
Sep 12 Python
在python中pandas的series合并方法
Nov 12 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
Python基于Opencv识别两张相似图片
Apr 25 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使用curl通过代理获取数据的实现方法
2016/05/16 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
jQuery.each使用详解
2015/07/07 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
使用JavaScript破解web
2018/09/28 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
王纯业的Python学习笔记 下载
2007/02/10 Python
python对数组进行反转的方法
2015/05/20 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
高中毕业自我鉴定
2013/12/19 职场文书
旅游活动总结
2014/08/27 职场文书
八一建军节演讲稿
2014/09/10 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
政审证明范文
2015/06/19 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
python实现三阶魔方还原的示例代码
2021/04/28 Python
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL