python之百度贴吧自动签到
2013-09-09 15:33
976 查看
# -*- coding: utf-8 -*- '''#百度错误代码: err_code:40 请输入验证码完成发帖 ''' import urllib,urllib2,cookielib,re; import json; def sign(): sign_url='http://tieba.baidu.com/sign/add'; print '正在尝试签到'; tbs=get_tbs(); print '获取喜欢的贴吧ing...'; like_tieba='http://tieba.baidu.com/f/like/mylike'; resp=urllib2.urlopen(like_tieba).read(); re_like_tieba='<a href="\/f\?kw=.*?" title=".*">(.*?)<\/a>'; find_like_tieba=re.findall(re_like_tieba,resp); print '我喜欢的贴吧:' for mylike_tieba in find_like_tieba: print mylike_tieba; #构造签到数据头: sign_request={'ie':'utf-8','kw':mylike_tieba,'tbs':tbs} sign_request=urllib.urlencode(sign_request); sign_request=urllib2.Request(sign_url,sign_request); sign_resp=urllib2.urlopen(sign_request); #print sign_resp; sign_resp=json.load(sign_resp); print sign_resp; if sign_resp['error']=='' : user_sign_rank = int(sign_resp['data']['uinfo']['user_sign_rank']); #第几个签到 cont_sign_num = int(sign_resp['data']['uinfo']['cont_sign_num']); #连续签到 cout_total_sing_num = int(sign_resp['data']['uinfo']['cout_total_sing_num']); #累计签到 print "签到成功,第%d个签到,连续签到%d天,累计签到%d天" %(user_sign_rank, cont_sign_num, cout_total_sing_num); else :#签到失败处理 if not sign_resp['error']==u'亲,你之前已经签过了': find_like_tieba.append(mylike_tieba); print 'wtf'; #else: #print 'hello'; #print type(sign_resp['error']); def get_tbs(): tbs_url='http://tieba.baidu.com/dc/common/tbs'; tbs_resp=urllib2.urlopen(tbs_url).read(); print tbs_resp; tbs=re.search('"tbs":"(?P<tbs>.*?)"',tbs_resp).group('tbs'); print 'tbs:',tbs; return tbs; def checkAllCookiesExist(cookieNameList, cookieJar) : cookiesDict = {}; for eachCookieName in cookieNameList : cookiesDict[eachCookieName] = False; allCookieFound = True; for cookie in cookieJar : if(cookie.name in cookiesDict) : cookiesDict[cookie.name] = True; for eachCookie in cookiesDict.keys() : if(not cookiesDict[eachCookie]) : allCookieFound = False; break; return allCookieFound; def baidu(username,password):#尝试登录百度 test_url='http://yun.baidu.com'; login_path='https://passport.baidu.com/v2/api/?login'; try: cookie=cookielib.CookieJar(); opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)); urllib2.install_opener(opener); opener.addheaders=[('User-agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31')]; #获取cookie baiduMainUrl = "http://www.baidu.com/"; resp = urllib2.urlopen(baiduMainUrl); #获取奇葩的token print "to get token value"; getapiUrl = "https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=true"; getapiResp = urllib2.urlopen(getapiUrl); #print "getapiResp=",getapiResp; getapiRespHtml = getapiResp.read(); foundTokenVal = re.search("bdPass\.api\.params\.login_token='(?P<tokenVal>\w+)';", getapiRespHtml); if(foundTokenVal): tokenVal = foundTokenVal.group("tokenVal"); print "tokenVal=",tokenVal; else: print 'foundTokenVal is null'; post_dic={ 'staticpage':'http://www.baidu.com/cache/user/html/v3Jump.html', 'charset':'UTF-8', 'token':tokenVal, 'tpl':'mn', 'apiver':'v3', #'tt':, #'codestring':, 'isPhone':'false', 'safeflg':0, 'u':'http://www.baidu.com/', 'quick_user':0, #'usernamelogin':1, 'splogin':'rate', 'username':username, 'password':password, #'verifycode':'', 'mem_pass':'on', #'ppui_logintime':14791 'callback':'parent.bd__pcbs__c5crjq', }; postdata=urllib.urlencode(post_dic); req=urllib2.Request(login_path,postdata); resp=urllib2.urlopen(req) #data=urllib2.urlopen(test_url).read(); cookiesToCheck = ['BDUSS', 'PTOKEN', 'STOKEN', 'SAVEUSERID']; loginBaiduOK = checkAllCookiesExist(cookiesToCheck, cookie); if(loginBaiduOK): print "+++ Emulate login baidu is OK, ^_^"; #return 'ok' print 'ok' else: print "--- Failed to emulate login baidu !" #return 'failed'; print 'failed'; sign(); print '尝试结束,看疗效...'; #return data; except Exception,e: print str(e); #我喜欢的贴吧 #http://tieba.baidu.com/f/like/mylike? #re:<a href="\/f\?kw=.*?" title=".*">.*?<\/a> user='youremail' password='yourpassword' baidu(user,password);
相关文章推荐
- python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
- python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
- selenium+python实现百度贴吧自动签到
- python+selenium百度贴吧自动签到
- python3+任务计划实现的人人影视网站自动签到
- 使用SAE-Python在虾米网自动签到
- 用Python自动登录街旁并完成签到
- python 实现 某网站自动签到
- python 实现 自动oa 签到签退 发送邮件提醒
- Python模拟登录wap版百度贴吧+自动回贴
- 用Python+Selenium模拟键盘和鼠标操作,实现自动签到
- 百度贴吧自动签到
- python 工作自动签到记录
- 我的第一个python爬虫程序(从百度贴吧自动下载图片)
- Python3编写自动签到服务程序
- python写的自动签到脚本。
- 百度贴吧/V2EX站点自动签到程序
- Python爬虫实现自动登录、签到
- python实现街旁自动签到