python登录51网详解

选择登录社交网站得越过验证码,所以选没验证码的界面,先看下不用验证码的链接
第一步,先查看下51是怎么登录的:

那就转入http://passport.51.com/login.5p?passport_51_user=YOURUSERNAME?passport_51_password=YOURPASSWORD

发现可以登录,登录后跳转的页面是http://my.51.com/?from=passport

那么就可以开始写程序了:


#!/usr/bin/python
# -*- coding: utf-8 -*-
               
import urllib2, urllib, cookielib, re
               
class LoginRenren(object):
               
    """登陆51构造器"""
               
    def __init__(self, USER, password):
               
        self.USER = USER
        self.password = password
        #self.domain = 'renren.com'
        self.domain = '51.com'
        self.logined_url = ''
        self.logined_url_re = r'http://my.51.com/?from=passport'
        self.islogin = False
               
        try:
            # 获取构建cookie
            cookie = cookielib.CookieJar()
            cookieProc = urllib2.HTTPCookieProcessor(cookie)
        except:
            raise
        else:
            #装载cookies   
            opener = urllib2.build_opener(cookieProc)
            urllib2.install_opener(opener)
               
    def login(self):
                       
        """登陆方法"""
               
        print 'login...'
        # 登陆地址
        url='http://passport.51.com/login.5p'
        # post数据
        postdata = {
            'passport_51_user': self.USER,
            'passport_51_password': self.password,
        }
        # 编码登陆的post数据
        data = urllib.urlencode(postdata)
        #print url, data
        # 构造请求
        req = urllib2.Request(
            url,
            data
        )
         
        # 发送请求,获取响应
        response = urllib2.urlopen(req)
        
        # 登陆后的url
        self.logined_url = response.geturl()
      
        # 判断登陆是否成功
        self.__isLogin()
         
        if self.islogin == True:
            print u'登陆成功 !'
            self.__getStatus()
        else:
            print u'登录失败,请重试 !'
               
    def __isLogin(self):
               
        """判断登陆是否成功"""
               
        if self.logined_url_re == self.logined_url:
            self.islogin = True
               
    def __getStatus(self):
        pass
               
if __name__ == '__main__':
                   
    # 请输入您的用户名
    USER = raw_input(u'user:')
    # 请输入您的密码
    PASSWORD = raw_input(u'password:')               
    lr = LoginRenren(USER, PASSWORD)
    lr.login()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向良玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值