Python脚本实现自动发带图的微博


Posted in Python onApril 27, 2016

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

创建应用

要使用微博的API,需先要有个应用。随便是个应用就行,可以到这里注册一个站内应用应用注册。注册应用的主要目的是要获得MY_APPKEY 和MY_ACCESS_TOKEN,如图所示

Python脚本实现自动发带图的微博

获取access_token

API的调用需要登录授权获得access_token。参考

首先,调用https://api.weibo.com/oauth2/authorize接口,获得code。

该接口有三个必须的参数:

•client_id:申请应用时分配的AppKey。
•redirect_url:就是创建应用中设置的回调地址
•response_type:响应类型,可设置为code

具体做法,就是在浏览器打开https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code。该方法会转到授权页面,授权之后会转到http://www.example.com/response&code=CODE,记录下该url中的CODE。

接着,调用https://api.weibo.com/oauth2/access_token接口,获得access_token。

该接口有如下必须的参数:

•client_id:申请应用时分配的AppKey。
•client_secret:申请应用时分配的AppSecret。
•grant_type:请求的类型,填写authorization_code
•code:调用authorize获得的code值。
•redirect_uri: 就是创建应用中设置的回调地址

具体做法就是构建一个POST请求,再在返回的数据中找到access_token,保存下来。具体的Python代码:

import requests
url_get_token = "https://api.weibo.com/oauth2/access_token"
#构建POST参数
playload = {
"client_id":"填入你的",
"client_secret":"填入你的",
"grant_type":"authorization_code",
"code":"上面获得的CODE",
"redirect_uri":"你的回调用地址"
}
#POST请求
r = requests.post(url_get_token,data=playload)
#输出响应信息
print r.text

如果正常的话,会返回下面这样的json数据:

{"access_token":"我们要记下的","remind_in":"157679999","expires_in":157679999,"uid":"1739207845"}

根据返回的数据,access_token的值就是我们要的。其中remind_in的值是access_token的有效期,单位为秒,我们可以看到,这个时间有3、4年之久,足够我们用了。

发表纯文字微博

调用接口https://api.weibo.com/2/statuses/update.json发表文字微博,其参数如下

Python脚本实现自动发带图的微博

其中必须的:

•access_token: 就是我们上一步获得的access_token
•status:要发布的微博文本内容,必须做URLencode,内容不超过140个汉字

具体代码:

#发表文字微博的接口
url_post_a_text = "https://api.weibo.com/2/statuses/update.json"
#构建POST参数
playload = {
"access_token":"填入你的",
"status":"This is a text test@TaceyWong"
}
#POST请求,发表文字微博
r = requests.post(url_post_a_text,data = playload)

如果正常,会有向下面这样的结果

Python脚本实现自动发带图的微博

发表带图片的微博

调用接口http://open.weibo.com/wiki/2/statuses/upload发表图片微博,其参数如下:

Python脚本实现自动发带图的微博

其中必须的参数:

•access_token: 就是我们上一步获得的access_token
•status:要发布的微博文本内容,必须做URLencode,内容不超过140个汉字
•pic:要发表的图片,采用multipart/form-data编码方式

具体的代码:

#发表图文微博的接口
url_post_pic = "https://upload.api.weibo.com/2/statuses/upload.json"
#构建文本类POST参数
playload={
"access_token":"2.0086XhtBIQLH7Ed67706b6c8TQ8XdE",
"status":"Test:Post a text with a pic & AT someone@丸子?"
}
#构建二进制multipart/form-data编码的参数
files={
"pic":open("logo.png","rb")
}
#POST请求,发表微博
r = requests.post(url_post_pic,data=playload,files = files)

如果正常,结果会像下面这样:

Python脚本实现自动发带图的微博

注:requests的具体用法请参考[requests文档](http://docs.python-requests.org/en/master/)

Python 相关文章推荐
浅析Python中else语句块的使用技巧
Jun 16 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
Django实现分页功能
Jul 02 Python
python的pip安装以及使用教程
Sep 18 Python
python 实现一次性在文件中写入多行的方法
Jan 28 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
Python之指数与E记法的区别详解
Nov 21 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
安装PyInstaller失败问题解决
Dec 14 Python
python操作gitlab API过程解析
Dec 27 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
Pytorch 实现变量类型转换
May 17 Python
Python实现新浪博客备份的方法
Apr 27 #Python
Python2.7简单连接与操作MySQL的方法
Apr 27 #Python
Python判断文本中消息重复次数的方法
Apr 27 #Python
python脚本监控docker容器
Apr 27 #Python
Python多进程同步简单实现代码
Apr 27 #Python
Python对象转JSON字符串的方法
Apr 27 #Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 #Python
You might like
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
深入apache host的配置详解
2013/06/09 PHP
ThinkPHP路由详解
2015/07/27 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
Javascript 遍历对象中的子对象
2009/07/03 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
Python装饰器知识点补充
2018/05/28 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
python进行参数传递的方法
2020/05/12 Python
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
本科毕业生的求职信范文
2013/11/20 职场文书
超市端午节活动方案
2014/01/23 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
应聘英语教师求职信
2014/04/24 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
电影建国大业观后感
2015/06/01 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL