用 Python 自動發微博


雖然微博官方有Python SDK,但是下載鏈接竟然失效了??在Pypi找到一個庫——weibo,貌似還不錯

安裝weibo庫

pip install weibo 報錯 “ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output”

 查看報錯的行數,剛好是我昨天遇到的一個問題,打開文件時沒有指定編碼方式,使用的默認為gbk編碼,而源碼中出現了gbk無法編碼的字符。

解決方法也很簡單,下載壓縮包,解壓,在報錯位置添加 encoding='utf-8'

再壓縮,使用 pip install weibo-0.2.2.zip 安裝。

獲取access_token

官方文檔:https://pypi.org/project/weibo/

需要先創建應用:微連接-->移動應用-->立即接入,

填寫基本信息,能得到App Key和App Secret即可。

要獲取access_token還必須在高級設置-->授權回調頁填入url(可以隨便填,反正用戶是不可見的)

>>> from weibo import Client
>>> c = Client(API_KEY, API_SECRET, REDIRECT_URI)
>>> c.authorize_url
'https://api.weibo.com/oauth2/authorize?redirect_uri=http%3A%2F%2F127.0.0.1%2Fcallback&client_id=123456'

復制鏈接到瀏覽器打開,獲取 code.

>>> c.set_code('abcdefghijklmn')

client 初始化完成。token 可以被保存下來供下次調用時直接使用。

>>> token = c.token
>>> c2 = Client(API_KEY, API_SECRET, REDIRECT_URI, token)
>>> c2.get('users/show', uid=token['uid'])

還有一種調用方式,不需要先獲取token,而是使用密碼:

>>> from weibo import Client
>>> c = Client(API_KEY, API_SECRET, REDIRECT_URI, username='admin', password='secret')
>>> c.get('users/show', uid=token['uid'])

自動發送微博

顯然,這個weibo庫只是對原生API進行封裝,原生API作出的限制仍然存在。

所以需要去設置一個安全域名,

其他的信息還好,Android簽名包名信息實在不會,網上隨便找個填進去,居然OK!

Android包名:com.kfgame.yinzijianggggg
Android簽名:ab6de671ab6de671ab6de671ab6de671

安全域名也可以隨便填,我填的www.baidu.com

from weibo import Client

API_KEY = 'xxx'
API_SECRET = 'xxx'
REDIRECT_URI = 'https://www.cnblogs.com/lfri/'
token = {
    'access_token': 'xxx', 
    'remind_in': '157679999', 
    'uid': 'xxx', 
    'isRealName': 'true', 
    'expires_at': 1736993116
    }

c = Client(API_KEY, API_SECRET, REDIRECT_URI, token)
c.post('statuses/share', status='衡陽天氣' + 'https://www.baidu.com/s?tn=baidutop10&rsv_idx=2&wd=%E8%A1%A1%E9%98%B3%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5')

效果:

 

 “來自 未通過審核應用”,這是因為還沒有審核,不過不影響使用。

 

 

參考鏈接:

1. Python報錯ERROR: Command errored out with exit status 1

2. 微信申請 包名和簽名

3. 用 Python 自動定時發微博


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM