【python实战】找个微博小助手,每天自动发微博
目录
目录.png一、 背景
郑老师近来自己发微博的时间比较少了,但是,公司又希望郑老师能够每天多发发微博。郑老师又没有人帮他每天发,自然搁置下来了。
我呢,没事刷刷知乎,看看python可以干什么的时候,我发现,python还可以发微博,果断入手。
这不,我就可以给郑老师找个微博小助手,每天定期发微博了么?
二、思路
要实现每天自动发微博,主要有3个步骤:
- 准备内容素材;
- 登录微博,分享内容(发微博);
- 每天定时发送;
三、过程
1. 准备内容素材
郑老师提供了些思路,例如,本来打算发一些口语考试背景知识,但是,微博发送内容限制140字以内,就不好实现了。
最后,决定每天发张joke图片,配文《笑点在哪里》。joke图片也是通过python从网络批量获取的。
这个过程就不详述了,自己找好素材就行。
2. python发微博
有了文字和图片素材,就开始可以用python发微博了。
通过在网上看别人的帖子,以及自己看微博开放平台的文档,总结如下:
(1)微博开放平台创建应用
①百度搜并打开微博开放平台,用自己的微博登录就行。
微博开放平台.png②点 微连接 —— 移动应用 —— 立即接入 ——继续创建,就可以创建新应用了。
应用名称和应用分类自己选就行了,然后点击 创建,就创建了应用了,这样就可以我的应用中看见了。
创建新应用.png创建应用的主要目的是获取 App Key、App Secret、code、access_token、授权回调页地址、安全域名这些信息,这些是在发微博过程中需要用到的。
其中, App Key、App Secret是创建信息后自动生成的;
Key&Secret.png授权回调页地址、安全域名是需要自己添加;
code是需要根据 App Key和授权回调页地址获得;
access_token是需要根据 App Key、App Secret、code和授权回调页地址获得;
安全域名是在发微博时需要带上的。
(2)添加授权回调页地址、安全域名
授权回调页:在我的应用——应用信息——高级信息中,进行编辑设置。
在这里,授权回调页用了郑老师的简书主页,应该也可以用其他的个人主页或者自己信得过的网址。
取消授权回调页:就用了简书主页了,这个也没啥限制的。
授权回调页.png安全域名:在我的应用——应用信息——基本信息中,进行编辑设置。
在设置过程中,还需要填 应用地址、应用简介、应用介绍、标签,其中,应用地址可以是自己的微博主页,其他信息,就按要求凑够字数,添加标签就行。
由于发微博的接口请求参数中的status要求文本中必须包含至少一个第三方分享到微博的网页URL,且该URL只能是该第三方(调用方)绑定域下的URL链接
。
因此,根据网上的帖子,安全域名可以填 weibo.com,之后的url链接就可以是郑老师的微博主页了。
(3)授权登录,获得code
该填的信息都填完之后,就可以开始获取参数了。
首先是,授权登录。点击 文档——微博登录:
微博登录.png就可以看到两个重要的URL了。
url.png第一个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
改为自己设置的授权回调页地址。
回车-点击授权登录后,页面跳转,地址栏中是自己设置的**授权回调页地址**\?code=CODE
,其中,CODE就是后续要用的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
改为自己设置的授权回调页地址,另外,将code
改为上述获取到的code。
回车,返回的页面中,就有access_token值,保存下来。
(5)发文字+图片微博
至此,需要的参数都已经有了,开始写python代码发微博了。
同样,进入文档——内容分享——API接口——分享微博接口可以看到,需要的请求参数。其中,access_token和status是必填的。
请求参数.pngimport requests
access_token='自己的access_token'
safe_domain='可以是自己的微博主页'
url_share='https://api.weibo.com/2/statuses/share.json'
text='要发送的文字'
para={'access_token':access_token,
'status':text}
pic='图片'
files={'pic':open(pic,'rb')}
#只发纯文字
r_text=requests.post(url_share,data=para)
#文字+图片
r_pic=requests.post(url_share,data=para,files=files)
根据上述代码及自己准备的素材进行修改,就可以发微博啦~
3. 每天自动发送
每天自动发送的实现主要是通过windows系统自带的任务计划程序,就是让电脑每天定时地跑python代码就行了。这也适用于其他程序的每天自动运行。
以win10为例:
右键此电脑——点开管理,看到如下界面:
计算机管理.png点击任务计划程序,然后,点击右侧的创建基本任务: 创建基本任务.png
任务名称:自己定义任务名称;
触发器:点击下一步,设置触发器,自己选择任务开始的时间。
触发器.png除了选择计算机启动时和当前用户登录时,其他选项会需要补充设置时间,例如,每天开始的话,是从哪天什么时候开始,每隔几天发生一次。 每日.png
操作:选择启动程序,点击下一步。 操作.png
程序或脚本:python的安装路径,例如,
C:\Users\Ressia\AppData\Local\Programs\Python\Python38\python.exe
添加参数:python脚本的路径,例如,
C:\study\实战\python\weibo\weibo_xiaohua.py
点击下一步——完成,就已经设定好啦~
在任务计划程序库中,就可以看到自己设定的程序(双击可以进行修改编辑),可以点击右侧的运行,看看效果哟~~
任务计划程序库.png四、效果
给郑老师设定每天上午8点发微博,python自动生成的内容,发布文字和jokes的图片,效果如下图。
郑老师的定时微博.png我自己嘞,就每天0点,python自动生成的内容,发布进度条文字和图片。
自己的定时微博.png