本文记录了用新浪微博官方Python SDK调用API进行开发的流程。

准备工作

申请成为开发者并创建一个应用:

首先要有一个新浪微博的账号,然后去新浪微博开放平台(http://open.weibo.com/)创建一个应用,具体的步骤官网文档介绍的非常详细:在开发者页面点击“登录” -> “创建应用” -> 选择应用类型(如“网页应用”)-> 填写应用信息。

P.S.,应用需要设置一个回调地址(CALL_BACK),可以设定为默认的回调网址:https://api.weibo.com/oauth2/default.html

这一步完成后,将得到三个有用的信息:APP_KEY,APP_SECRET和CALL_BACK,这三个信息在后面编写程序时将用到。

OAuth2.0授权

微博开放接口的调用,如发微博、关注等,都是需要获取用户身份认证的。目前微博开放平台用户身份鉴权主要采用的是OAuth2.0。官方文档有非常详细的说明,了解了授权机制后有助于使用SDK编写程序的过程。

下载和安装新浪微博Python SDK

打包下载新浪微博官方Python SDK,网页中说明了安装有两种方式,第一种用命令行工具pip安装,第二种下载源码包安装。

对于第一种安装方式,pip是Python的包管理工具,可以很方便的安装Python模块。安装成功后,只需在命令行(或linux终端)中执行pip install sinaweibopy,SDK的包sinaweibopy就安装完毕。测试是否安装成功,可以在python命令行中输入:import weibo,如果没有错误提示说明安装成功。实际上Python SDK主要就是模块weibo,后面在使用SDK时就是调用该模块中的函数。

对于第二种方式,需要拷贝下载的源码到安装目录或者配置Python模块搜索的Path中。


读写微博接口程序

下面就可以调用微博API写微博操作程序了,下面简单介绍一个抓取微博数据的程序。

# _*_ coding: utf-8 _*_
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from weibo import APIClient
import json
import webbrowser
import io APP_KEY = '' ## 填写应用程序的信息
APP_SECRET = ''
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
url = client.get_authorize_url()
# TODO: redirect to url webbrowser.open_new(url)
#print url
# obtain url code:
code = raw_input("input the code: ").strip()
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,类似abc123xyz456
expires_in = r.expires_in # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4
# TODO: 在此可保存access token
client.set_access_token(access_token, expires_in) res = client.statuses.public_timeline.get(count=200) ##返回最新的200条热门微博
#res = client.statuses.user_timeline.get() ##返回作者发布的历史微博
#res = client.statuses.friends_timeline.ids.get() ##返回好友发布的微博id
#res=client.emotions.get() a = json.dumps(res, ensure_ascii = False,indent = 2)
fout = io.open('test','w',encoding='utf-8')
fout.write(a)

运行程序,自动打开回调页,将网址内的“code”拷贝至程序,程序执行成功后,就可以得到微博数据了。

这里实际是调用新浪微博提供的API,具体参考官方文档

新浪微博API的使用Python的更多相关文章

  1. 新浪微博API使用初步介绍——解决回调地址的问题

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #新浪微博API使用初步介绍——解决回调地址的问题 #http://blog.csdn.net/monsion ...

  2. python编程之API入门: (二)python3中使用新浪微博API

    回顾API使用的流程 通过百度地图API的使用,我理解API调用的一般流程为:生成API规定格式的url->通过urllib读取url中数据->对json格式的数据进行解析.下一步,开始研 ...

  3. 【重要】新浪微博api研究

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #新浪微博api研究 ''' 3.SDK的使用规则: 1)使用微博API,需要通过用户的授权,获取用户的授权码 ...

  4. Windows API Hooking in Python

    catalogue . 相关基础知识 . Deviare API Hook Overview . 使用ctypes调用Windows API . pydbg . winappdbg . dll inj ...

  5. 以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博API

    新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种: 1.基于Oauth协议,使用Open API.(http://open.weibo.com/wiki/%E6%8E%88%E6 ...

  6. paip.文件读写api php java python总结.txt

    paip.文件读写api php java python总结.txt 一.多种方式读文件内容.    1.按字节读取文件内容   以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. ...

  7. java parse 带英文单词的日期字符串 转 date (转化新浪微博api返回的时间)

    拂晓风起 专注前端技术cocos2d.js.flash.html5,联系:kenkofox@qq.com.如果读者要找腾讯工作机会,请不吝推荐简历. 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔 ...

  8. 新浪微博API生成短链接

    通过新浪微博API,生成短链接,支持一次性转多个长链接 什么是短链接 短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串. 短链接服务 国内各大微博都推出了自己的短链接 ...

  9. 搜索引擎--范例:新浪微博API获取最近的微博--statuses/public_timeline

    新浪微博平台跟新浪SAE一样,都是一个字“坑”,好了,不再吐槽,直入主题 1:直接登录新浪,添加网站,就直接添加我们在新浪SAE上创建的应用即可 2:填写信息,ICP备案信息号填写sinaapp.co ...

随机推荐

  1. 2、java语言基础

    1.关键字 被Java语言赋予特定含义的单词被称为关键字关键字都是小写的在Java开发工具中,针对关键字有特殊颜色的标记 2.标识符 Java标识符命名规则 ·标识符是由,数字,字母,下划线和美元符号 ...

  2. zedboard学习记录.1.纯PL流水灯

    环境:vivado 217.4 开发板: zedboard ver.d xc7z020clg484-1 1.打开Vivado新建一个RTL工程. 2.add source->add/create ...

  3. C++ STL标准入门

    C++:STL标准入门汇总 第一部分:(参考百度百科) 一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexand ...

  4. Codeforces Round #456 (Div. 2)

    Codeforces Round #456 (Div. 2) A. Tricky Alchemy 题目描述:要制作三种球:黄.绿.蓝,一个黄球需要两个黄色水晶,一个绿球需要一个黄色水晶和一个蓝色水晶, ...

  5. C++中stringstream样例

    包含头文件 #include <sstream> 初始化可以使用 clear(). str( ) 赋值: 这里的clear方法,实际上是清空stringstream的状态(比如出错等),清 ...

  6. 设计模式之笔记--外观模式(Facade)

    外观模式(Facade) 定义 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 类图 描述 Facade:外观类,外观 ...

  7. int各种数据类型的表示范围

    计算方法:1.正数部分数部分:2^(字节数*8-1)-1 2.负数部分:-(2^(字节数*8-1)+1) unsign int:正数部分*2+1

  8. MVC – 4.mvc初体验(1)

    1.MVC请求模式 2.MVC简单请求流程图 展开 折叠 3.返回string的mvc方法 展开 折叠 4.加载视图的方法

  9. Deepin 2015 安装惠普打印机驱动

    参考:https://bbs.deepin.org/forum.php?mod=viewthread&tid=34749&extra= 1.安装新立得包管理器:sudo apt-get ...

  10. 更换 ECharts 散点图图标(散点图中symbol的使用)

    更换 ECharts 散点图图标 使用symbol关键字