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

复制代码 代码如下:

# -*- 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<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'];

时间: 2024-10-27 19:09:26

python模拟登录百度代码分享(获取百度贴吧等级)_python的相关文章

Python模拟登录12306的方法_python

本文实例讲述了Python模拟登录12306的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: #!/usr/bin/python # -*- coding: utf-8 -*-   import re; import sys; import cookielib; import urllib; import urllib2; import optparse; import json; import httplib2; reload(sys) sys.setdefaulten

嵌入页-php实现嵌入百度页,获取百度搜索结果页,点击网站的地址

问题描述 php实现嵌入百度页,获取百度搜索结果页,点击网站的地址 各位大侠,我要实现这么一个功能! 我的网站一个页面,嵌入百度页,然后在百度页面搜索关键字,到百度结果页,点击结果页的一个网站,弹出网站(注意这里是新弹出一个页面),我的网站如何能获得这个弹出页面的url地址:或者是否有更好的解决办法!谢谢各位! 解决方案 不知道这里是否有你想要的,http://help.baidu.com/question?prod_en=search&class=%C3%E2%B7%D1%B4%FA%C2%E

Python实现线程池代码分享

  这篇文章主要介绍了Python实现线程池代码分享,本文直接给出实例代码,需要的朋友可以参考下 原理:建立一个任务队列,然多个线程都从这个任务队列中取出任务然后执行,当然任务队列要加锁,详细请看代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

python 模拟登录豆瓣 并 发表动态

模拟登录这块一直没搞过,主要是对 模拟登陆的流程不太熟悉,网上找了好多资料,感觉熟悉个大概,就先用豆瓣 试试. 验证码这一块,现在主要是先把验证码的图片保存下来,手动输入验证码,后期研究下python自动识别验证码. 但是验证码保存成本地图片,看的不不太清楚(有时间在改下),可以把验证码的 url 地址在浏览器中打开,就可以看清楚验证码了. 主要实现 登录豆瓣,并发表一句话 # -*- coding:utf-8 -*- import re import requests from bs4 imp

Python 模拟登录知乎

前言 必备知识点 headers Referer User-Agent 隐藏域 其他 模拟登录 模拟防爬 服务器端 loginphp loginhtml 浏览器测试 正常提交用户名密码的话如下 用户名或者密码填写错误的情况如下 爬虫没有添加隐藏域时 添加了隐藏域的爬虫 知乎模拟登录 更新版知乎模拟登陆 代码部分 验证效果 总结 前言 前天看到一个爬取了知乎50多万评论的帖子, 羡慕的同时也想自己来尝试一下.看看能不能获取一些有价值的信息. 必备知识点 下面简单的来谈谈我对常见的防爬虫的一些技巧的

jQuery热气球动画半透明背景的后台登录界面代码分享_jquery

本文实例讲述了jQuery实现热气球动画背景登录框.分享给大家供大家参考.具体如下: jQuery热气球动画背景登录框是一款动态半透明背景的后台登录界面样式效果代码.页面效果简洁大方,是一款非常实用的特效代码,值得大家学习. 运行效果图:-------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的jQuery实现热气球动画背景登录框代码如下 <head> <meta http-equ

python根据开头和结尾字符串获取中间字符串的方法_python

本文实例讲述了python根据开头和结尾字符串获取中间字符串的方法.分享给大家供大家参考.具体分析如下: 这里给定一个字符串,指定开头和结尾的字符串,返回中间包夹的字符串,比如: content:<div class="a">jb51.net</div> startStr:<div class="a"> endStr:</div> 返回结果:jb51.net def GetMiddleStr(content,start

python模拟登录百度贴吧(百度贴吧登录)实例_python

  复制代码 代码如下: # -*- coding:utf-8 -*-# python3.3.3 import sys,time,re,urllib.parse,urllib.request,http.cookiejar,random,math,os.path,hashlib,json,binascii,threading """cookie"""cookie=http.cookiejar.LWPCookieJar()#cookie.load('

python 远程统计文件代码分享

  享一个Python获取远程文件大小的函数代码,简单实用,是学习Python编程的基础实例. python 远程统计文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #!/usr/bin/python #encoding=utf-8 import time import os import parami