作者:周萝卜

最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人。

基本思路

其实要实现一个简单的自动发布微博机器人还是不难的,只需要每天按时找好要发布的素材(一般就是爬虫了),然后再通过微博开放出来的 API 接口,自动发布即可。

素材

对于素材,我这里选取的是金山词霸的每日一句英语,我们可以爬取该网站的相关信息来组成我们的微博素材。

微博 API

微博给广大开发者提供了一个开放平台

当然在使用这个平台之前,我们还是要先注册并创建好应用。比如像我这样,创建好一个应用

然后我们还需要设置好安全域名(后面发布微博时会用到),在应用信息->基本信息中设置。

还需要设置应用回调地址,在应用信息->高级信息中设置。

当然对于微博 API 的调用,我们可以使用其他人封装好的第三方库来更加方便的操作,我这里使用了一个就叫做“weibo”的库,直接使用 pip 安装。pip install weibo

不过我遇到了安装问题,报错如下

Traceback (most recent call last):

File "setup.py", line 15, in

long_description=open('README.rst').read(),

UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 241: illegal multibyte sequence

看起来是编码问题,我们可以通过修改源代码来规避1. 从 http://pypi.org 上下载 weibo 库

2. 然后解压该包,并修改文件 setup.py 如下代码

long_description=open('README.rst', encoding='utf-8').read(),3. 分别执行如下命令安装

python setup.py build

python setup.py install

至此可以安装 weibo 库成功

准备工作与编写思路就是这些,下面我们来看看具体的过程与代码

自动发布微博

根据 weibo 库的说明文档,使用其操作微博还是相关容易的,只需要提供我们创建微博应用时的 App Key 与 App Secret 和应用回调地址信息即可。简单的调用代码如下

from weibo import Client

c = Client('App Key', 'App Secret', 'https://www.luobodazahui.top', username='username', password='password')

c.post('statuses/share', status='haha' + 安全域名)

我们运行该代码,如果不出意外的话,我们就能够在该账号下的微博中看到刚刚发布的微博了。

最简单的微博已经发布成功了,那么能不能发布带有图片的微博呢,我们来尝试一下

根据接口 statuses/share 的文档说明,我们可以传入 pic 参数来进行图片的上传

我们传入 pic 参数尝试下

f = open('4.png', 'rb')

c.post('statuses/share', status='haha' + 安全域名, pic=f)

f.close()

可以的,能够正常发布带有图片的微博

那么现在自动发布微博搞定了,我们再来看看如何自动获取微博素材

微博素材

对于金山词霸的每日一句,我们可以使用如下的一个 API 来获得每天的信息

可以看到该接口返回的如下信息

我们可以直接使用 requests 库来调用该接口

import requests

url = 'http://open.iciba.com/dsapi/'

res = requests.get(url)

content_e = res.json()['content']

content_c = res.json()['note']

content = content_e + '\n' + content_c

content_t = res.json()['picture2']

现在我们来封装两个函数,把功能完善起来

def weibo(content, picture):

ff = requests.get(picture).content

c = Client(app_key, app_secret, 'https://www.luobodazahui.top', username=username, password=password)

c.post('statuses/share', status=content + 'https://www.luobodazahui.com', pic=ff)

def auto_weibo():

url = 'http://open.iciba.com/dsapi/'

res = requests.get(url)

content_e = res.json()['content']

content_c = res.json()['note']

content = content_e + '\n' + content_c

content_t = res.json()['picture2']

weibo(content, content_t)

return 'OK'

现在我们就可以创建一个定时任务,每天7点运行该脚本就可以啦0 7 * * * python auto_weibo.py

最后效果如下

python 自动发微博_Python 教你自动发微博,每日一句英语相关推荐

  1. python 微博自动点赞软件_Python微博工具人,每日一句英语自动发

    原标题:Python微博工具人,每日一句英语自动发 关注 来源 | 萝卜大杂烩(ID:luobodazahui) 如若转载请联系原公众号 最近在研究用 Python 来制作各个类别的机器人,今天先来分 ...

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

    作者:周萝卜 最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知 ...

  3. 用python定时自动发微博_Python脚本实现自动发带图的微博

    要自动发微博最简单的办法无非是调用新浪微博的API(因为只是简单的发微博,就没必要用它的SDK了).参考开发文档http://open.weibo.com/wiki/API 进行代码编写 创建应用 要 ...

  4. python 微信聊天机器人_python操作微信自动发消息的实现(微信聊天机器人)

    前言 最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微信,而这个库是通过微信网页版来操作微信的,现在微信网页版已 ...

  5. python微信自动发消息_python操作微信自动发消息的实现(微信聊天机器人)

    前言 最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微信,而这个库是通过微信网页版来操作微信的,现在微信网页版已 ...

  6. python用outlook自动发邮件_python使用两种发邮件的方式smtp和outlook示例

    smtp是直接调用163邮箱的smtp服务器,需要在163邮箱中设置一下.outlook发送就是Python直接调用win32方式.调用程序outlook直接发送邮件. import win32com ...

  7. python向自己qq邮箱发信息_python QQ邮箱自动发送邮件

    于初学者来讲在写发送邮件代码时常见的错误有SMTPAuthenticationError535,有点懵逼,检查用户名,密码正确就是报错, 想当年笔者也是这么过来的,现在就给大家分享一下个人经验: 一, ...

  8. python自动登录教程_python实现校园网自动登录的示例讲解

    因为最近想用树莓派搞个远程监控系统,又因为学校的网需要从网页登录而树莓派又不方便搞个显示器带着,所以寻思着搞个能够自动登录校园网的脚本程序,省去了每次都要打开浏览器输入账号密码的烦恼. 1.工具 火狐 ...

  9. python自动备份手机_python实现数据库自动备份

    python实现数据库自动备份 设计要求 执行环境centos 7 x64 每天某一个时刻自动执行备份操作,执行时间可调整 数据库备份文件保留在特定目录中,目录路径可设置 自动将当前备份版本发送到指定 ...

最新文章

  1. 半吊子架构师,一来就想干掉RabbitMQ ...
  2. html输入邮箱的文本框,自动生成邮箱号并填入input输入框的实现方法
  3. 通过迭代在DataFrame中取出满足某种条件的列,函数 —— .columns
  4. Nancy 学习-视图引擎 继续跨平台
  5. Win10 IoT 10 中文显示乱码或报错的问题
  6. 如何使用vs将asp.net core项目添加容器支持并发布docker镜像到私有dockerhub和添加k8s/helm管理...
  7. P5607-[Ynoi2013]无力回天NOI2017【线性基,线段树,树状数组】
  8. java端到端_Java应用程序性能监控:复杂分布式应用程序的端到端性能
  9. mustache 模板使用
  10. 00002-两数之和-leetcode-1.暴力法(枚举法),2.哈希表法,目前更新了枚举法
  11. 判断线程池中的线程是否全部执行完毕
  12. Android开发指南(32) —— Multimedia and Camera - Audio Capture
  13. 2022-06-14 QThread CPU压力测试
  14. 网页连接mysql教程_网页怎么连接到数据库?
  15. 八爪鱼抓取html,网页数据爬取方法详解 - 八爪鱼采集器
  16. 【win10网络重置后,网络适配器消失或者不能使用】
  17. oracle bbed 推进scn
  18. 头脑风暴问题:玻璃水果盘的用法
  19. Vue对高德地图2.0的封装使用
  20. 中华黄金·金生态合伙人颁奖典礼在珠海站开幕完美收官!!

热门文章

  1. vue项目实现G6双向树状图最详细教程
  2. 苹果电脑系统怎么重装?这几步就可以轻松搞定
  3. Java入门 第十三节(二)IO流转换流
  4. pdb怎么调试python_如何在用pdb调试python时更改值?
  5. unity 画球面_unity中实现Mesh画球体、半球体、四分之一球体以及任意弧面
  6. CPU漏洞修复工具下载,专门针对“Meltdown”(融化)和“Spectre”(幽灵)两组CPU漏洞,360安全卫士国内首发免疫工具
  7. 第028讲:文件:因为懂你,所以永恒 | 学习记录(小甲鱼零基础入门学习Python)
  8. android 手机扔起来的高度,三防AGM X2评测:吴京硬汉本色扔海里也不怕
  9. 高中英才计划计算机研究设计计划,高中生英才计划.docx
  10. SLAM数据集(百度网盘)