利用 Python 实现自动登录51cto 领取下载豆
2017-05-30 本文已影响0人
不会写诗的王维
为了积攒51CTO 上面的下载豆,最近闲着无聊,写了一个小程序,自动去登录领取下载豆。
环境
- Python 3.5
- requests 库
- Pycharm
思路
- 登录51cto
- 找到领取下载豆的 URL
- 领取下载豆
- 发送微信通知,领取成功
开始撸代码
1 . 保存 cookies 信息
这里利用 cookies 登录,查看之前,先使用自己的账号登录网站,登录之后,打开开发者选项,查看 cookies。红色里面的就是 cookies 的内容,复制下来,保存为 txt 文档。文件名为<cookie_51cto.txt>
屏幕快照 2017-05-30 上午8.15.48.png2 . 处理 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 貌似一个都找不到。所有可以通过邮件,或者微信的形式发送通知。我这里选择的是通过微信发送通知。
需要去飞鸽网,注册一下就好了。根据提示信息用户组,找到适合自己的信息发送模板,比较坑的就是不能自定义信息模板。管他了,免费的,能用就行了。
根据适合自己的模板,选择一款即可!
#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("连接失败")
到这里,就差不完成了。
看看效果!
原谅我使用的故障通报的模板!!!
另外,感谢这个兄弟,如果有疑问,可以查看他的 github 的项目。
谢谢,出去吃午饭了。