用 Python 自動定時發(fā)微博
其實小帥b已經(jīng)挺久沒有玩微博了,記得上次玩微博還是為了給周杰倫打榜,不過最近心血來潮,覺得俺的微博賬號躺著也是躺著,要不就用 Python 做一個自動定時發(fā)微博的機(jī)器人,讓它在上面飄一會。
怎么個飄法呢?
這不禁讓我想到了一個叫做 “古城鐘樓”?的微博賬號,每天都定時定點的在上面 “鐺鐺檔”,其它的啥也不干,但牛逼的是,人家就憑 “鐺鐺檔” 就有了 100 多萬粉絲,我特么都快給跪下了。
所以我也打算弄一個類似這樣的微博機(jī)器人,我要做的是,每隔一段時間就發(fā)布一條關(guān)于?“年度進(jìn)度” 的微博,告訴你一年過去百分之多少了。比如:?
2020?年進(jìn)度:
[#-------------------]4%
事不宜遲,先把我的微博名稱給改了,就叫做 “我的年度進(jìn)度條” 吧,再把簽名改成 “給時間打上 tag” 。
瞬間有點逼格了,帥b微博百萬粉指日可待!!
那么如何實現(xiàn)定時發(fā)微博呢?接下來就是:
學(xué)習(xí) Python 的正確姿勢
遇事不決,量子力學(xué),去微博的開放平臺逛一波,果然發(fā)現(xiàn)了一個寫入微博的 API:

進(jìn)去看了下,是一個 POST 請求,需要攜帶兩參數(shù),一個 token, 一個要發(fā)微博的內(nèi)容:

?
上面說了,token 參數(shù)需要采用 OAuth 授權(quán)后才能獲得。
所以得先登錄上去注冊一個應(yīng)用:


?
遇事不決,量子力學(xué),在 PyPI 上面搜下 weibo ,果然有人用 Python 封裝好了微博接口請求的 API :

第一個點進(jìn)去看看介紹:


唉呀媽呀,這正是我想要的哇,Python 又幫我省下了不少時間,哎,人生苦短呀。

那就 install 一波唄:

?
開始擼下代碼,創(chuàng)建一個 weibo_robot.py ,然后把需要的庫導(dǎo)進(jìn)來:

這個 weibo 庫的獲取 token 是這樣的:

那就把它寫成一個方法,然后等下把參數(shù)塞進(jìn)去就可以了:


有了參數(shù)就可以獲取 weibo 的 client 了:

有了 client 就可以調(diào)用 share 接口來發(fā)微博了,來測試一下:

運(yùn)行一波:

報錯了,文本找不到域名?我就納悶了呀,為啥要 domain?
再仔細(xì)看下文檔才發(fā)現(xiàn)還要帶上域名的:

好吧,帶上俺綁定的域名試試看:

再運(yùn)行一波,沒報錯了,打開俺的微博看看:

可以可以,發(fā)布成功,不過來自?“未通過審核應(yīng)用” 是什么鬼?
看下開放平臺的應(yīng)用發(fā)現(xiàn):

好吧,不管了,先這樣,接下來就可以來寫一個獲取年度進(jìn)度的方法了。
希望發(fā)布的微博格式是這樣的:
[#-------------------]xx%
所以定義一下特定的輸出格式:


百分比就是獲取當(dāng)天是新的一年的第幾天,然后除以 365 ,而主要的進(jìn)度條在這里就定義一個這樣的字符串:

每一小格代表 5% ,然后每次計算百分比,比如現(xiàn)在就是這樣:

而 14% 就是這樣:

可以,那就四舍五入下,然后整下字符串替換得了:

再運(yùn)行一波:

沒毛病,那最后就扔到服務(wù)器上定時運(yùn)行腳本了。
可以使用 Linux 的?crontab?定時任務(wù),執(zhí)行 crontab -e,編輯定時運(yùn)行腳本,比如定時每天 17 :20 發(fā)布微博:

保存退出即可,這樣每到了特定的時間,它就會屁顛屁顛的運(yùn)行了。

ok,就先這樣讓它在上面飄著吧,之后有時間小帥b再優(yōu)化優(yōu)化,畢代碼寫的有點倉促,?API 也可能會變,服務(wù)器偶爾會傻逼...,那么我們下回見咯,peace!
你點在看的樣子
真特么帥氣!!
