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抽象基类用法实例分析
Jun 04 Python
python写入并获取剪切板内容的实例
May 31 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
基于Python实现签到脚本过程解析
Oct 25 Python
python绘制随机网络图形示例
Nov 21 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 Python
用python开发一款操作MySQL的小工具
May 12 Python
Python基本数据类型之字符串str
Jul 21 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中ADODB类详解
2008/03/25 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
PHP中的替代语法介绍
2015/01/09 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
无闪烁更新网页内容JS实现
2013/12/19 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python中itertools的用法详解
2020/02/07 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
水果超市创业计划书
2014/01/27 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
PHP策略模式写法
2021/04/01 PHP
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby
使用python绘制横竖条形图
2022/04/21 Python
基于Python编写一个监控CPU的应用系统
2022/06/25 Python