其实小帅b已经挺久没有玩微博了,记得上次玩微博还是为了给周杰伦打榜,不过最近心血来潮,觉得俺的微博账号躺着也是躺着,要不就用 Python 做一个自动定时发微博的机器人,让它在上面飘一会。
怎么个飘法呢?
这不禁让我想到了一个叫做 “古城钟楼” 的微博账号,每天都定时定点的在上面 “铛铛档”,其它的啥也不干,但牛逼的是,人家就凭 “铛铛档” 就有了 100 多万粉丝,我特么都快给跪下了。
所以我也打算弄一个类似这样的微博机器人,我要做的是,每隔一段时间就发布一条关于 “年度进度” 的微博,告诉你一年过去百分之多少了。比如:
2020 年进度:
[#-------------------]4%
事不宜迟,先把我的微博名称给改了,就叫做 “我的年度进度条” 吧,再把签名改成 “给时间打上 tag” 。
瞬间有点逼格了,帅b微博百万粉指日可待!!
那么如何实现定时发微博呢?接下来就是:
学习 Python 的正确姿势
遇事不决,量子力学,去微博的开放平台逛一波,果然发现了一个写入微博的 API:
进去看了下,是一个 POST 请求,需要携带两参数,一个 token, 一个要发微博的内容:
上面说了,token 参数需要采用 OAuth 授权后才能获得。
所以得先登录上去注册一个应用:
反正就是一顿创建之后拿到应用相关的 App Key, App Secret 等参数,有了它们才可以去获取 token 从而使用发微博的 API。
遇事不决,量子力学,在 PyPI 上面搜下 weibo ,果然有人用 Python 封装好了微博接口请求的 API :
第一个点进去看看介绍:
唉呀妈呀,这正是我想要的哇,Python 又帮我省下了不少时间,哎,人生苦短呀。
那就 install 一波呗:
开始撸下代码,创建一个 weibo_robot.py ,然后把需要的库导进来:
这个 weibo 库的获取 token 是这样的:
那就把它写成一个方法,然后等下把参数塞进去就可以了:
把刚刚在微博开放平台获到的参数,和自己微博账号密码给定义好:
有了参数就可以获取 weibo 的 client 了:
有了 client 就可以调用 share 接口来发微博了,来测试一下:
运行一波:
报错了,文本找不到域名?我就纳闷了呀,为啥要 domain?
再仔细看下文档才发现还要带上域名的:
好吧,带上俺绑定的域名试试看:
再运行一波,没报错了,打开俺的微博看看:
可以可以,发布成功,不过来自 “未通过审核应用” 是什么鬼?
看下开放平台的应用发现:
好吧,不管了,先这样,接下来就可以来写一个获取年度进度的方法了。
希望发布的微博格式是这样的:
xxxx 年进度:
[#-------------------]xx%
所以定义一下特定的输出格式:
其中的 years 可以通过 datetime 获取:
百分比就是获取当天是新的一年的第几天,然后除以 365 ,而主要的进度条在这里就定义一个这样的字符串:
每一小格代表 5% ,然后每次计算百分比,比如现在就是这样:
而 14% 就是这样:
可以,那就四舍五入下,然后整下字符串替换得了:
再运行一波:
没毛病,那最后就扔到服务器上定时运行脚本了。
可以使用 Linux 的 crontab 定时任务,执行 crontab -e,编辑定时运行脚本,比如定时每天 17 :20 发布微博:
保存退出即可,这样每到了特定的时间,它就会屁颠屁颠的运行了。
以上就是“用 Python 自动定时发微博”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。