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设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
浅谈Python 中整型对象的存储问题
May 16 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
使用Python 统计高频字数的方法
Jan 31 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
python调用自定义函数的实例操作
Jun 26 Python
python3.7 的新特性详解
Jul 25 Python
解决Mac下使用python的坑
Aug 13 Python
Python3直接爬取图片URL并保存示例
Dec 18 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 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 购物车的例子
2009/05/04 PHP
初学CAKEPHP 基础教程
2009/11/02 PHP
深入php处理整数函数的详解
2013/06/09 PHP
PHP实现微信对账单处理
2018/10/01 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
js实现搜索栏效果
2018/11/16 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
Linux下python制作名片示例
2018/07/20 Python
浅析python继承与多重继承
2018/09/13 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
捷克时尚网上商店:OTTO
2018/03/15 全球购物
自主招生自荐信格式
2013/12/03 职场文书
公司薪酬管理制度
2014/01/31 职场文书
导师工作推荐信范文
2014/05/17 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
教师党员整改措施
2014/10/24 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
运动会加油稿20字
2014/11/15 职场文书
2015年幼师工作总结
2015/04/28 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
Python基础知识之变量的详解
2021/04/14 Python