Python实现的金山快盘的签到程序

yipeiwu_com5年前Python基础

复制代码 代码如下:

__author__ = 'clownfish'
#coding:utf-8
import urllib2,urllib,cookielib,json

username = "快盘用户名"
password = "快盘密码"

class sign(object):
    username = ''
    password = ''
    #登录显示页面
    indexurl = 'https://www.kuaipan.cn/account_login.htm'
    #登录的form表单url
    loginurl = 'https://www.kuaipan.cn/index.php?ac=account&op=login'
    #签到的真正url
    signurl = 'http://www.kuaipan.cn/index.php?ac=common&op=usersign'

    def __init__(self,username,password):
        self.username = username
        self.password = password

    def login(self):
        cj = cookielib.CookieJar()
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
        urllib2.install_opener(opener)
        print "打开登录页面"
        try:
            urllib2.urlopen(self.indexurl)
            post_data = {'username':self.username,'userpwd':self.password,'isajax':'yes'}
            req=urllib2.Request(self.loginurl,urllib.urlencode(post_data))
        except Exception, e:
            print "网络链接错误"
            return False
        print "登录成功,准备签到!"
        response = urllib2.urlopen(req)
        login=response.read()
        return login

    def sign(self):
        response = urllib2.urlopen(self.signurl)
        sign = response.read()
        l = json.loads(sign)
        if (l and l['state'] == 1) or \
        (l and 0 == l['state'] and l['increase'] * 1 == 0 and l['monthtask'].M900 == 900):
            print "恭喜你签到成功!"
            k = l['increase']*1
            m = l['rewardsize'] * 1
            if (k == 0 and l['monthtask'].M900 == 900):
                print "本月签到积分已领取完成"
            else:
                print "签到奖励积分:%s" % (k)
            if m == 0:
                print "手气太不好了!奖励 0M 空间"
            else:
                print "签到奖励空间:%s" % (m)
        else:
            if (l['state'] == -102):
                print "今天您已经签到过了"
            else:
                print "签到失败,遇到网络错误,请稍后再试!"

        return sign


if __name__ == "__main__":
    sign = sign(username,password)
    if sign.login():
        sign.sign()

相关文章

在Django框架中伪造捕捉到的URLconf值的方法

比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的URL。 这种情况下,你可以通过向同一个视图传递额外URLconf参数来伪造URL值的捕捉。 例如,你可能有一...

python动态加载包的方法小结

本文实例总结了python动态加载包的方法。分享给大家供大家参考,具体如下: 动态加载模块有三种方法 1. 使用系统函数__import_() stringmodule = __im...

python设置随机种子实例讲解

对于原生的random模块 import random random.seed(1) 如果不设置,则python根据系统时间自己定一个。 也可以自己根据时间定一个随机种子,如:...

wxpython 学习笔记 第一天

它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。   和Python语言与wxWidgets GUI工具库一样,wxPy...

Python求出0~100以内的所有素数

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 一、判断一个数是否为素数: 基于定义 def is_prime(num):...