目錄

一、 背景
鄭老師近來自己發(fā)微博的時間比較少了,但是,公司又希望鄭老師能夠每天多發(fā)發(fā)微博。鄭老師又沒有人幫他每天發(fā),自然擱置下來了。
我呢,沒事刷刷知乎,看看python可以干什么的時候,我發(fā)現(xiàn),python還可以發(fā)微博,果斷入手。
這不,我就可以給鄭老師找個微博小助手,每天定期發(fā)微博了么?
二、思路
要實現(xiàn)每天自動發(fā)微博,主要有3個步驟:
- 準備內(nèi)容素材;
- 登錄微博,分享內(nèi)容(發(fā)微博);
- 每天定時發(fā)送;
三、過程
1. 準備內(nèi)容素材
鄭老師提供了些思路,例如,本來打算發(fā)一些口語考試背景知識,但是,微博發(fā)送內(nèi)容限制140字以內(nèi),就不好實現(xiàn)了。
最后,決定每天發(fā)張joke圖片,配文《笑點在哪里》。joke圖片也是通過python從網(wǎng)絡(luò)批量獲取的。
這個過程就不詳述了,自己找好素材就行。
2. python發(fā)微博
有了文字和圖片素材,就開始可以用python發(fā)微博了。
通過在網(wǎng)上看別人的帖子,以及自己看微博開放平臺的文檔,總結(jié)如下:
(1)微博開放平臺創(chuàng)建應用
①百度搜并打開微博開放平臺,用自己的微博登錄就行。

②點 微連接 —— 移動應用 —— 立即接入 ——繼續(xù)創(chuàng)建,就可以創(chuàng)建新應用了。
應用名稱和應用分類自己選就行了,然后點擊 創(chuàng)建,就創(chuàng)建了應用了,這樣就可以我的應用中看見了。

創(chuàng)建應用的主要目的是獲取 App Key、App Secret、code、access_token、授權(quán)回調(diào)頁地址、安全域名這些信息,這些是在發(fā)微博過程中需要用到的。
其中, App Key、App Secret是創(chuàng)建信息后自動生成的;

授權(quán)回調(diào)頁地址、安全域名是需要自己添加;
code是需要根據(jù) App Key和授權(quán)回調(diào)頁地址獲得;
access_token是需要根據(jù) App Key、App Secret、code和授權(quán)回調(diào)頁地址獲得;
安全域名是在發(fā)微博時需要帶上的。
(2)添加授權(quán)回調(diào)頁地址、安全域名
授權(quán)回調(diào)頁:在我的應用——應用信息——高級信息中,進行編輯設(shè)置。
在這里,授權(quán)回調(diào)頁用了鄭老師的簡書主頁,應該也可以用其他的個人主頁或者自己信得過的網(wǎng)址。
取消授權(quán)回調(diào)頁:就用了簡書主頁了,這個也沒啥限制的。

安全域名:在我的應用——應用信息——基本信息中,進行編輯設(shè)置。
在設(shè)置過程中,還需要填 應用地址、應用簡介、應用介紹、標簽,其中,應用地址可以是自己的微博主頁,其他信息,就按要求湊夠字數(shù),添加標簽就行。
由于發(fā)微博的接口請求參數(shù)中的status要求文本中必須包含至少一個第三方分享到微博的網(wǎng)頁URL,且該URL只能是該第三方(調(diào)用方)綁定域下的URL鏈接。
因此,根據(jù)網(wǎng)上的帖子,安全域名可以填 weibo.com,之后的url鏈接就可以是鄭老師的微博主頁了。
(3)授權(quán)登錄,獲得code
該填的信息都填完之后,就可以開始獲取參數(shù)了。
首先是,授權(quán)登錄。點擊 文檔——微博登錄:

就可以看到兩個重要的URL了。

第一個URL是用來獲得code的:
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
將該URL復制到瀏覽器的地址欄,將YOUR_CLIENT_ID改為自己的App Key,YOUR_REGISTERED_REDIRECT_URI改為自己設(shè)置的授權(quán)回調(diào)頁地址。
回車-點擊授權(quán)登錄后,頁面跳轉(zhuǎn),地址欄中是自己設(shè)置的**授權(quán)回調(diào)頁地址**\?code=CODE,其中,CODE就是后續(xù)要用的code。
(4)獲得access_token
上述圖片的第2個URL是用來獲得access_token的:
https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
同樣可以,將該URL復制到瀏覽器的地址欄,將YOUR_CLIENT_ID改為自己的App Key,YOUR_REGISTERED_REDIRECT_URI改為自己設(shè)置的授權(quán)回調(diào)頁地址,另外,將code改為上述獲取到的code。
回車,返回的頁面中,就有access_token值,保存下來。
(5)發(fā)文字+圖片微博
至此,需要的參數(shù)都已經(jīng)有了,開始寫python代碼發(fā)微博了。
同樣,進入文檔——內(nèi)容分享——API接口——分享微博接口可以看到,需要的請求參數(shù)。其中,access_token和status是必填的。

import requests
access_token='自己的access_token'
safe_domain='可以是自己的微博主頁'
url_share='https://api.weibo.com/2/statuses/share.json'
text='要發(fā)送的文字'
para={'access_token':access_token,
'status':text}
pic='圖片'
files={'pic':open(pic,'rb')}
#只發(fā)純文字
r_text=requests.post(url_share,data=para)
#文字+圖片
r_pic=requests.post(url_share,data=para,files=files)
根據(jù)上述代碼及自己準備的素材進行修改,就可以發(fā)微博啦~
3. 每天自動發(fā)送
每天自動發(fā)送的實現(xiàn)主要是通過windows系統(tǒng)自帶的任務(wù)計劃程序,就是讓電腦每天定時地跑python代碼就行了。這也適用于其他程序的每天自動運行。
以win10為例:
右鍵此電腦——點開管理,看到如下界面:

點擊任務(wù)計劃程序,然后,點擊右側(cè)的創(chuàng)建基本任務(wù):

任務(wù)名稱:自己定義任務(wù)名稱;
觸發(fā)器:點擊下一步,設(shè)置觸發(fā)器,自己選擇任務(wù)開始的時間。

除了選擇計算機啟動時和當前用戶登錄時,其他選項會需要補充設(shè)置時間,例如,每天開始的話,是從哪天什么時候開始,每隔幾天發(fā)生一次。

操作:選擇啟動程序,點擊下一步。

程序或腳本:python的安裝路徑,例如,
C:\Users\Ressia\AppData\Local\Programs\Python\Python38\python.exe
添加參數(shù):python腳本的路徑,例如,
C:\study\實戰(zhàn)\python\weibo\weibo_xiaohua.py

點擊下一步——完成,就已經(jīng)設(shè)定好啦~
在任務(wù)計劃程序庫中,就可以看到自己設(shè)定的程序(雙擊可以進行修改編輯),可以點擊右側(cè)的運行,看看效果喲~~

四、效果
給鄭老師設(shè)定每天上午8點發(fā)微博,python自動生成的內(nèi)容,發(fā)布文字和jokes的圖片,效果如下圖。

我自己嘞,就每天0點,python自動生成的內(nèi)容,發(fā)布進度條文字和圖片。
