码迷,mamicode.com
首页 > 编程语言 > 详细

新浪微博API的使用Python

时间:2015-05-15 22:50:08      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

本文记录了用新浪微博官方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

标签:

原文地址:http://www.cnblogs.com/tec-vegetables/p/4506943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!