為了積攢51CTO 上面的下載豆,最近閑著無聊,寫了一個(gè)小程序佳头,自動去登錄領(lǐng)取下載豆。
環(huán)境
- Python 3.5
- requests 庫
- Pycharm
思路
- 登錄51cto
- 找到領(lǐng)取下載豆的 URL
- 領(lǐng)取下載豆
- 發(fā)送微信通知晴氨,領(lǐng)取成功
開始擼代碼
1 . 保存 cookies 信息
這里利用 cookies 登錄康嘉,查看之前,先使用自己的賬號登錄網(wǎng)站籽前,登錄之后亭珍,打開開發(fā)者選項(xiàng),查看 cookies枝哄。紅色里面的就是 cookies 的內(nèi)容肄梨,復(fù)制下來,保存為 txt 文檔膘格。文件名為<cookie_51cto.txt>
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("下載豆領(lǐng)取失敳扑伞1窦!辆毡!")
msg += "下載豆領(lǐng)取失敳饲亍!2耙础球昨!"
elif data[0] == "1":
print("今天已領(lǐng)取UH痢V魑俊嚣州!已領(lǐng)取" + data[1] + "個(gè)下載豆!9猜荨该肴!")
msg += "今天已領(lǐng)取C瓴弧T群濉!已領(lǐng)取" + data[1] + "個(gè)下載豆3O呀馈!"
else:
print("成功領(lǐng)取" + data[1] +"個(gè)下載豆挑秉,目前擁有" + data[0] + "個(gè)下載豆法梯!")
msg += "成功領(lǐng)取" + data[1] +"個(gè)下載豆,目前擁有" + data[0] + "個(gè)下載豆衷模!"
return msg
except:
print("下載失敗鹊汛,請檢查您的網(wǎng)絡(luò)是否連接或者URL地址是否正確")
這樣,就登錄成功阱冶,領(lǐng)取完了刁憋。
3 . 發(fā)送通知信息。
目前網(wǎng)上免費(fèi)發(fā)短信的 API 貌似一個(gè)都找不到木蹬。所有可以通過郵件至耻,或者微信的形式發(fā)送通知。我這里選擇的是通過微信發(fā)送通知镊叁。
需要去飛鴿網(wǎng),注冊一下就好了尘颓。根據(jù)提示信息用戶組,找到適合自己的信息發(fā)送模板晦譬,比較坑的就是不能自定義信息模板疤苹。管他了,免費(fèi)的敛腌,能用就行了卧土。
根據(jù)適合自己的模板,選擇一款即可像樊!
#coding=utf8
__author__ = 'v'
__date__ = '2017/5/16'
import requests
import down_bean_51cto # 把剛才上面那段代碼保存為一個(gè)模塊尤莺,導(dǎo)入進(jìn)來
"""
error_code ={
200:"成功",
10001:"缺少secret或token",
10002:"缺少消息標(biāo)題或內(nèi)容",
10003:"消息模板KEY錯(cuò)誤",
10004:"secret或token錯(cuò)誤",
10005:"余額不足"
}
"""
host = 'http://u.ifeige.cn/api/'
path = "group_sendmsg"
url = host + path + '?'
data = {
'secret':'762b7403483c8c324119a4ea65c3*****',
'token':'9ca138a18293d20b6ff18dc**************',
#登錄自己的賬號,就可以查看自己的 secret 和 Token
'title':'51CTO 領(lǐng)豆通知',
'content':down_bean_51cto.get_download_bean(),
'remark':'已成功領(lǐng)取'
}
try:
r = requests.post(url=url,data=data)
res = r.json()
if res['code'] == 200:
print("信息發(fā)送成功")
except:
print("連接失敗")
到這里生棍,就差不完成了颤霎。
看看效果!
原諒我使用的故障通報(bào)的模板!S呀础晴音!
另外,感謝這個(gè)兄弟粹污,如果有疑問段多,可以查看他的 github 的項(xiàng)目。
謝謝壮吩,出去吃午飯了进苍。