当前位置:  编程技术>python

python模拟登录百度代码分享(获取百度贴吧等级)

    来源: 互联网  发布时间:2014-09-04

    本文导语:  代码如下:# -*- coding: utf8 -*-'''Created on 2013-12-19 @author: good-temper''' import urllib2import urllibimport cookielibimport reimport bs4 URL_BAIDU_INDEX = u'http://www.baidu.com/';#https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=true 也可以用这个URL_BAIDU_TOK...

代码如下:

# -*- coding: utf8 -*-
'''
Created on 2013-12-19

@author: good-temper
'''

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.*?)"',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'];


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python获取网页编码的方法及示例代码
  • python 获取文件列表(或是目录例表)
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • python通过scapy获取局域网所有主机mac地址示例
  • python获取网页状态码示例
  • python中使用urllib2获取http请求状态码的代码例子
  • Python获取远程文件大小的函数代码分享
  • python 获取et和excel的版本号
  • linux系统使用python获取内存使用信息脚本分享
  • python 获取本机ip地址的两个方法
  • 使用python 获取进程pid号的方法
  • linux系统使用python获取cpu信息脚本分享
  • python获取糗百图片代码实例
  • python获取beautifulphoto随机某图片代码实例
  • python获取豆瓣电影简介代码分享
  • python 动态获取当前运行的类名和函数名的方法
  • python使用urllib2模块获取gravatar头像实例
  • 使用python编写脚本获取手机当前应用apk的信息
  • python使用ctypes模块调用windowsapi获取系统版本示例
  • linux系统使用python监测网络接口获取网络的输入输出
  • Python获取当前时间的方法
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • Python GUI编程:tkinter实现一个窗口并居中代码 iis7站长之家
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • Python开发者社区整站源码 Pythoner
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python读取csv文件示例(python操作csv)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3