利用 Python 实现自动登录51cto 领取下载豆

2017-05-30  本文已影响0人  不会写诗的王维

为了积攒51CTO 上面的下载豆,最近闲着无聊,写了一个小程序,自动去登录领取下载豆。

环境

思路

开始撸代码

1 . 保存 cookies 信息

这里利用 cookies 登录,查看之前,先使用自己的账号登录网站,登录之后,打开开发者选项,查看 cookies。红色里面的就是 cookies 的内容,复制下来,保存为 txt 文档。文件名为<cookie_51cto.txt>

屏幕快照 2017-05-30 上午8.15.48.png

2 . 处理 cookies 信息,登录51cto

#coding=utf8
__author__ = 'v'
__date__ = '2017/5/28'

import requests
headers = {"User-Agent":"Mozilla/5.0"}

def get_download_bean():
    url = "http://down.51cto.com/download.php?do=getfreecredits"
    try:
        s = requests.Session()
        r = s.get(url=url,headers=headers,cookies=load_cookies.load_cookies('cookie_51cto.txt'), verify=False)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        # print(r.text)
        data = r.text.split(',')
        # print(data)
        msg = ''
        # print("登录成功")
        # 邮件信息
        if data[0] == "0":
            print("下载豆领取失败!!!")
            msg += "下载豆领取失败!!!"
        elif data[0] == "1":
            print("今天已领取!!!已领取" + data[1] + "个下载豆!!!")
            msg += "今天已领取!!!已领取" + data[1] + "个下载豆!!!"
        else:
            print("成功领取" + data[1] +"个下载豆,目前拥有" + data[0] + "个下载豆!")
            msg += "成功领取" + data[1] +"个下载豆,目前拥有" + data[0] + "个下载豆!"
        return msg
    except:
        print("下载失败,请检查您的网络是否连接或者URL地址是否正确")

这样,就登录成功,领取完了。

3 . 发送通知信息。

目前网上免费发短信的 API 貌似一个都找不到。所有可以通过邮件,或者微信的形式发送通知。我这里选择的是通过微信发送通知。
需要去飞鸽网,注册一下就好了。根据提示信息用户组,找到适合自己的信息发送模板,比较坑的就是不能自定义信息模板。管他了,免费的,能用就行了。
根据适合自己的模板,选择一款即可!

屏幕快照 2017-05-30 下午2.13.56.png
#coding=utf8
__author__ = 'v'
__date__ = '2017/5/16'

import requests
import down_bean_51cto  # 把刚才上面那段代码保存为一个模块,导入进来


"""
error_code ={
   200:"成功",
   10001:"缺少secret或token",
   10002:"缺少消息标题或内容",
   10003:"消息模板KEY错误",
   10004:"secret或token错误",
   10005:"余额不足"
 }
"""

host = 'http://u.ifeige.cn/api/'
path = "group_sendmsg"
url = host + path + '?'
data = {
    'secret':'762b7403483c8c324119a4ea65c3*****',  
    'token':'9ca138a18293d20b6ff18dc**************',
    #登录自己的账号,就可以查看自己的 secret 和 Token
    'title':'51CTO 领豆通知',
    'content':down_bean_51cto.get_download_bean(),
    'remark':'已成功领取'
}

try:
    r = requests.post(url=url,data=data)
    res = r.json()
    if res['code'] == 200:
        print("信息发送成功")
except:
    print("连接失败")

到这里,就差不完成了。
看看效果!

image.png

原谅我使用的故障通报的模板!!!
另外,感谢这个兄弟,如果有疑问,可以查看他的 github 的项目。
谢谢,出去吃午饭了。

上一篇下一篇

猜你喜欢

热点阅读