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 相关文章推荐
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
详解Django rest_framework实现RESTful API
May 24 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
python异常处理try except过程解析
Feb 03 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
Mar 23 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
Python 如何实现访问者模式
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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python方法生成txt标签文件的实例代码
2018/05/10 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
Python 没有main函数的原因
2020/07/10 Python
python如何将图片转换素描画
2020/09/08 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
市场营销管理制度
2014/01/29 职场文书
班委竞选演讲稿
2014/04/28 职场文书
师德模范事迹材料
2014/06/03 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
2015年度物流工作总结
2015/04/30 职场文书
校园广播站开场白
2015/06/01 职场文书
校园之声广播稿
2015/08/18 职场文书
Python基础之元类详解
2021/04/29 Python
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang