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中用于转换字母为小写的lower()方法使用简介
May 19 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
Django学习笔记之ORM基础教程
Mar 27 Python
解决python爬虫中有中文的url问题
May 11 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
使用Pytorch来拟合函数方式
Jan 14 Python
python Yaml、Json、Dict之间的转化
Oct 19 Python
Python爬虫之Selenium设置元素等待的方法
Dec 04 Python
新手必备Python开发环境搭建教程
May 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 dirname()与__FILE__常量的应用
2013/06/24 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
Python之批量创建文件的实例讲解
2018/05/10 Python
Python向excel中写入数据的方法
2019/05/05 Python
python+django+rest框架配置创建方法
2019/08/31 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
详解Python3中的 input() 函数
2020/03/18 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
普通简短的个人自我评价
2014/02/15 职场文书
南京青奥会口号
2014/06/12 职场文书
员工试用期自我评价
2014/09/18 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
停车位租赁协议书
2014/09/24 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
独生子女证明范本
2015/06/19 职场文书