用 Python 自动定时发微博

Posted Rogn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 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 自动定时发微博

以上是关于用 Python 自动定时发微博的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫实现半自动发微博

Python 教你自动发微博,每日一句英语

Python 教你自动发微博,每日实现一句心灵鸡汤

Python自动化发微博(使用原生API)

为啥Android手机发不了微博?

Python web 开发微博授权登录,获取用户info 信息