网站调用新浪微博内容( 一个自动发布新浪微博的机器人(图)分享(组图) )

优采云 发布时间: 2021-12-15 22:16

  网站调用新浪微博内容(

一个自动发布新浪微博的机器人(图)分享(组图)

)

  

  作者 | 周道

  生产 | 萝卜杂烩

  最近在研究使用Python制作各种类型的机器人。今天给大家分享一个自动发布新浪微博的机器人。

  基本思想

  其实实现一个简单的微博机器人自动发布并不难。你只需要每天准时找到要发布的素材(一般是爬虫),然后通过微博开放的API接口自动发布。

  材料

  材料方面,我选择了金山词霸的每日一句。我们可以抓取这个网站的相关信息来组成我们的微博素材。

  微博接口

  微博为开发者提供开放平台

  当然,在使用这个平台之前,我们仍然需要注册并创建一个应用程序。比如像我一样,创建一个应用程序

  

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

  

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

  

  当然,对于微博API的调用,我们可以使用别人打包的第三方库,操作起来更方便。这里我使用了一个名为“weibo”的库,直接使用pip安装。

  pip 安装微博

  但是我遇到了一个安装问题,错误如下

  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

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

  

  long_description=open('README.rst', encoding='utf-8').read(),

  python setup.py build

python setup.py install

  至此就可以成功安装微博库了

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

  自动发布微博

  根据微博库的文档,操作微博还是比较好用的。您只需要在我们创建微博应用时提供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' + 安全域名)

  我们运行代码,如果没有任何反应,我们将可以在该帐户下的微博中看到刚刚发布的微博。

  

  最简单的微博已经发布成功了,那么我们可以发布带图片的微博,我们试试吧

  根据接口status/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

  最终效果如下

  

  

  

  过去的

  预计

  回到

  顾

  技术

  6种常用的绘制地图的方法,代码直播!

  信息

  DeepMind 打造 AI 游戏系统

  技术

  9个简单易用的python文件操作方法

  信息

  程序员是复制粘贴工具的人吗?还是…

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线