python实现百度、CSDN、淘宝、人人自动登录(第一季)

社区账号太多,每家还要搞什么连续登陆天数,领积分啥的,经常不是忘记,就是没时间。正好在学习python,整网络爬虫,所以就尝试着写一个脚本,自动解决。新手的悲剧啊,摸索着前进,其中的艰辛无以言表啊。最后结果如下:

                     登陆                    领积分

百度空间: 成功                      失败

CSDN:      成功                      失败

淘宝:        成功                      失败

人人:        成功                       无

以后再慢慢研究吧,累死哥了!

 

代码华丽丽登场:

# -*- coding: utf-8 -*- 
import re 
import urllib 
import urllib2 
import cookielib 
import datetime
import time
from urllib2 import URLError,HTTPError
def baidu(username,password):
    #模拟登录 
    cj = cookielib.CookieJar()
    #用户名和密码 
    post_data = urllib.urlencode({'username': username, 'password': password})   
    #登录路径 
    path = 'https://passport.baidu.com/?login' 
    
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
    opener.addheaders = [('User-agent', 'Opera/9.23')] 
    urllib2.install_opener(opener) 
    req = urllib2.Request(path, post_data) 
    conn = urllib2.urlopen(req)
    '''
    f = open('baidu.html','w')
    print >>f,conn.read()
    f.close()
    '''
    try:
        conn = urllib2.urlopen('http://hi.baidu.com/'+username+'/ihome')
    except URLError,e:
        print >>logfile,'URLError:',e.code
        return
    except HTTPError,e:    
        logfile.wite('HTTP Error:'+e.reason)
        return
    result = conn.read()
    if('对不起您没有访问该部分内容的权限' in result):
        logfile.wite('Login failed/r/n')
    else:
        logfile.wrie('Login sucessed/r/n')
#--------------------------------------------------------------------
def csdn(logfile,username,password):
    
    logfile.write(str(datetime.datetime.now()) +' CSDN/r/n')
    #模拟登录 
    cj = cookielib.CookieJar()
    #用户名和密码 
  
    #登录路径 
    path = 'http://passport.csdn.net/ajax/accounthandler.ashx?t=log&u='+username+'&p='+password+'&c=&remember=1'#&f=http%3A//passport.csdn.net/account/login'
       
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
    opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13')] 
    urllib2.install_opener(opener) 
    req = urllib2.Request(path) 
    while(True):
        try:
            conn = urllib2.urlopen(req)
        except URLError,e:
            logfile.write('URLError:' +e.code + '/r/n')
            return False
        except HTTPError,e:    
            logfile.write('HTTP Error:'+e.reason+'/r/n')
            return False 
        result = conn.read()
        result = result.replace('true','True')
        result = result.replace('false','False')
        result = eval(result)
        
    
        if result['status']== True :
            logfile.write('Login sucessed/r/n')
            
        else:
            logfile.write('Login failed/r/n')
        #获取积分 
        logfile.write('Trying to gain points.... /r/n')
        try:
            conn = urllib2.urlopen('http://hi.csdn.net/cp.php?ac=task&taskid=7')
        except URLError,e:
            logfile.write('URLError:' +e.code + '/r/n')
            return False
        except HTTPError,e:    
            logfile.write('HTTP Error:'+e.reason + '/r/n')
            return False
        #判断是否成功,这里比较麻烦,因为csdn不反回成功与否,而只是上次成功获取积分距离现在的时间
        result = conn.read()
        digs = re.compile('<p>完成时间:.+</p>')
        r = digs.findall(result)
        if len(r)>0:
            #如果上次获取成功的时间在一小时之前,程序退出,否则每隔一秒重试一次
            if ('现在' in r[0]) or  ('秒' in r[0]) or ('分' in r[0]):
                logfile.write('Task finished/r/n')
                return True
        logfile.write('Try again after 1 second!/r/n')
        time.sleep(1)
        
        #break
        
#--------------------------------------------------------------------
def renren(logfile,username,password):
    logfile.write(str(datetime.datetime.now()) +' renren/r/n')
    cj = cookielib.CookieJar()
    post_data = urllib.urlencode(
        {'email':username,
         'password':password,
        }
        )
    path = 'http://www.renren.com/PLogin.do'
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    urllib2.install_opener(opener)
    req = urllib2.Request(path,post_data)
    
    try:
        conn = urllib2.urlopen(req)
    except URLError,e:
        logfile.write('URLError:' +e.code + '/r/n')
        return False
    except HTTPError,e:    
        logfile.write('HTTP Error:'+e.reason + '/r/n')
        return False
    if conn.geturl() == 'http://www.renren.com/home':
        logfile.write('Task finished/r/n')
    else:
        logfile.write('Task failed/r/n')
#--------------------------------------------------------------------
def taobao(logfile,username,password):
    logfile.write(str(datetime.datetime.now()) +' taobao/r/n')
    cj = cookielib.CookieJar()
    
    post_data = urllib.urlencode(
        {
         'CtrlVersion':	'1,0,0,7',
         'TPL_password':password,
         'TPL_redirect_url':'',
         'TPL_username':username,
         '_tb_token_':'5d7eba30e3b31',
         'action':'Authenticator',
         'callback':'',
         'css_style':'',
         'event_submit_do_login':'anything',
         'fc':2,
         'from':'tb',
         'from_encoding':'',
         'guf':'',
         'gvfdcname':'',
         'isIgnore':'',
         'llnick':'',
         'loginType':3,
         'longLogin':0,
         'minipara' :'',
         'minititle':'',
         'need_sign':'',
         'need_user_id':'',
         'not_duplite_str':'',
         'popid':'',
         'poy':'',
         'pstrong':'',
         'sign':'',
         'style':'default',
         'support':'000001',
         'tid':''
        }
        )
    path = 'https://login.taobao.com/member/login.jhtml'
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
 
    opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13')] 
    
    urllib2.install_opener(opener)
    req = urllib2.Request(path,post_data)
    req.addheader = ('Host', 'login.taobao.com')
    req.addheader = ('Referer', 'https://login.taobao.com/member/login.jhtml')
    #req.addheader = ('Content-Length', 414)
    req.addheader = ('Content-Type', 'application/x-www-form-urlencoded')
    #try login
    try:
        conn = urllib2.urlopen(req)
    except URLError,e:
        logfile.write('URLError:' +e.code + '/r/n')
        return False
    except HTTPError,e:    
        logfile.write('HTTP Error:'+e.reason + '/r/n')
        return False
    #以下是尝试领取每日淘金币,最后没成功,哪位朋友有方法,希望赐教啊
    #open tao jianhu,get currently coin
    try:
        conn = urllib2.urlopen('http://qz.jianghu.taobao.com/home/award_bid_home.htm?tracelog=jhleftmenu')
    except URLError,e:
        logfile.write('URLError:' +e.code + '/r/n')
        return False
    except HTTPError,e:    
        logfile.write('HTTP Error:'+e.reason + '/r/n')
        return False
    html = conn.read()
    #seach my coin
    digs = re.compile('<strong id="J_Coin">/d*')
    result = digs.findall(html)
    result = result[0].split('>')
    #my currently coin
    original_coin = result[1]
    #get get_coin_path
    digs = re.compile('"J_EnterTime" type="hidden" value=".*"')
    result = digs.findall(html) 
    result = result[0].split('"')
    enter_time = result[5]
    #print enter_time
   
    digs = re.compile('_tb_token_.*value=.*/'')
    result = digs.findall(html)
    
    result = result[0].split('/'')
    tb_token = result[4]
   
    get_coin_path = 'http://qz.jianghu.taobao.com/home/grant_everyday_coin.htm?t=1295486909134&_tb_token=5615ee3a50637'#+tb_token
    #try get more coin
    post_data = urllib.urlencode(
        {'enter_time':'1295486851783',#enter_time,
         'ran':'0.9395819079633437',
         'user_action':'tm=MTI5NTQ4Njg2MDM1OA==|ma=0rhVdv6+FAg=|br=jVF4vau4JmjnhXPejAYmduDU/IYjoBuD|pr=0rhVdv6+FAg=|id=0rhVdv6+FAg=|mc=BKZr5rSMYFoIFxHkfHzSFA==',
            })
    req = urllib2.Request(path,post_data)
    req.addheader = ('Host', 'qz.jianghu.taobao.com')
    req.addheader = ('Referer', 'http://qz.jianghu.taobao.com/home/award_bid_home.htm?tracelog=jhleftmenu')
    try:
        conn = urllib2.urlopen(req)
    except URLError,e:
        logfile.write('URLError:' +e.code + '/r/n')
        return False
    except HTTPError,e:    
        logfile.write('HTTP Error:'+e.reason + '/r/n')
        return False
   
    #update currently coin
    try:
        conn = urllib2.urlopen('http://qz.jianghu.taobao.com/home/award_bid_home.htm?tracelog=jhleftmenu')
    except URLError,e:
        logfile.write('URLError:' +e.code + '/r/n')
        return False
    except HTTPError,e:    
        logfile.write('HTTP Error:'+e.reason + '/r/n')
        return False
    result = conn.read()
    #seach my coin
    digs = re.compile('<strong id="J_Coin">/d*')
    result = digs.findall(result)
    result = result[0].split('>')
    #my currently coin
    now_coin = result[1]
    logfile.write('Your coin:'+original_coin+'->'+ now_coin+'/r/n')
#--------------------------------------------------------------------
if '__name__' == '__main__' :
        
    logfile = open('log.txt','a')
    renren(logfile,'','')
    csdn(logfile,'','')
    taobao(logfile,'','')
    logfile.close()
    
    print 'OK'


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值