作者:周萝卜

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

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

基本思路

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

素材

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

http://news.iciba.com/views/dailysentence/

微博 API

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

https://open.weibo.com/

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

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

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

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

pip install weibo

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

Traceback (most recent call last):File "setup.py", line 15, in <module>long_description=open('README.rst').read(),
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 241: illegal multibyte sequence

看起来是编码问题,我们可以通过修改源代码来规避

  • 1. 从 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 Clientc = 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 来获得每天的信息

http://open.iciba.com/dsapi/

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

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

import requestsurl = '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).contentc = 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_ccontent_t = res.json()['picture2']weibo(content, content_t)return 'OK'

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

0 7 * * * python auto_weibo.py

最后效果如下

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

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

    作者 | 周萝卜 出品 | 萝卜大杂烩 最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人. 基本思路 其实要实现一个简单的自动发布微博机器人还是不难的,只需 ...

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

    作者:周萝卜 最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人. 基本思路 其实要实现一个简单的自动发布微博机器人还是不难的,只需要每天按时找好要发布的素材 ...

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

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

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

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

  5. python 自动发微博 (微博H5接口)

    python自动发微博,调用微博H5接口 最近一直在研究这个,希望能用微博引流,话不多说 # /usr/bin/env python # -*- coding:utf-8 -*- import thr ...

  6. python:从0开始自动发微博

    前言 由于学院的微博需要发早安,晚安,而我经常忘记发,所以索性写个自动发微博的程序,放到服务器上..... 一.微博 1.注册一个微博 略 2.注册一个应用 名称随便取一个就行,分类和平台选择我们最熟 ...

  7. Python代码登录新浪微博并自动发微博

    前言 对于很少玩微博@張行之_的我来说,微博内容少的可怜.所以本人就想:能不能写个成功程序来帮我发微博.这个程序要满足以下要求: 自动化,自动登录微博,自动发微博. 微博内容要有意义,不能是随机生成的 ...

  8. python怎么登录微博并发微博_Python代码登录新浪微博并自动发微博

    前言 对于很少玩微博@張行之_的我来说,微博内容少的可怜.所以本人就想:能不能写个成功程序来帮我发微博.这个程序要满足以下要求: 自动化,自动登录微博,自动发微博. 微博内容要有意义,不能是随机生成的 ...

  9. python 自动发微博_GitHub - RisingStar20/pf_send_weibo: 通过爬虫自动发微博的Python项目...

    pf_send_weibo 通过爬虫自动发微博的Python项目 要爬取的网站 配置自己的微博账号: USER_NAME 用户名 PASSWD 密码 # 登录方式 LOGIN_TYPE_UID = & ...

最新文章

  1. Linux 之alias 命令别名
  2. 构造数组MaxTree、环形单链表的约瑟夫问题等总结
  3. android fragmentactivity fragment,Android:Activity与Fragment通信(99%)完美解决方案
  4. VOIP侵蚀电信利益,未来最赚钱的行业.
  5. android真机调试看不到logcat信息
  6. 客户端渲染(CSR)
  7. WinEdt LaTex(二)—— 空心中括号
  8. 柳传志:如何看人和用人
  9. DIY_DE2之DM9000A网卡调试系列例程(一)——准备工作
  10. php smarty 配置,php Smarty详细配置
  11. win7禁用显示方向旋转快捷键
  12. Suse12网络设置
  13. 2022-03-清华管理学-清华大学-宁向东
  14. 慕课网-安卓攻城狮视频学习及练习(一)
  15. 写个脚本批量注册网站账号
  16. docker部署项目通过127.0.0.1访问数据库:Connection refused
  17. QT3D学习之路03
  18. Oracle语法求水仙花数,python实现水仙花数实例讲解
  19. Elastic认证特训营 难点解读01——best_fields, most_fields, cross_fields 拆解认知
  20. python3 pdf书_用python3在PDF上书写文本

热门文章

  1. mysql-安装包模式的安装过程-旧版
  2. fzyzojP2291 -- 小添添的庄园之道路修复
  3. 在Windows和Azure中使用加密证书提高web.config的安全性
  4. Ajax表格控件实现
  5. pl/sql developer 安装svn插件 64位
  6. global.asax不执行原因
  7. [转]C++的Json解析库:jsoncpp和boost
  8. Spring MVC Hibernate MySQL集成CRUD示例教程
  9. BGP——路由通告+IBGP水平分割机制+RR路由反射器(讲解+配置命令)
  10. lua学习之类型与值篇