新浪微博API的使用Python
本文记录了用新浪微博官方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的更多相关文章
- 新浪微博API使用初步介绍——解决回调地址的问题
# -*- coding: utf-8 -*- #python 27 #xiaodeng #新浪微博API使用初步介绍——解决回调地址的问题 #http://blog.csdn.net/monsion ...
- python编程之API入门: (二)python3中使用新浪微博API
回顾API使用的流程 通过百度地图API的使用,我理解API调用的一般流程为:生成API规定格式的url->通过urllib读取url中数据->对json格式的数据进行解析.下一步,开始研 ...
- 【重要】新浪微博api研究
# -*- coding: utf-8 -*- #python 27 #xiaodeng #新浪微博api研究 ''' 3.SDK的使用规则: 1)使用微博API,需要通过用户的授权,获取用户的授权码 ...
- Windows API Hooking in Python
catalogue . 相关基础知识 . Deviare API Hook Overview . 使用ctypes调用Windows API . pydbg . winappdbg . dll inj ...
- 以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博API
新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种: 1.基于Oauth协议,使用Open API.(http://open.weibo.com/wiki/%E6%8E%88%E6 ...
- paip.文件读写api php java python总结.txt
paip.文件读写api php java python总结.txt 一.多种方式读文件内容. 1.按字节读取文件内容 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. ...
- java parse 带英文单词的日期字符串 转 date (转化新浪微博api返回的时间)
拂晓风起 专注前端技术cocos2d.js.flash.html5,联系:kenkofox@qq.com.如果读者要找腾讯工作机会,请不吝推荐简历. 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔 ...
- 新浪微博API生成短链接
通过新浪微博API,生成短链接,支持一次性转多个长链接 什么是短链接 短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串. 短链接服务 国内各大微博都推出了自己的短链接 ...
- 搜索引擎--范例:新浪微博API获取最近的微博--statuses/public_timeline
新浪微博平台跟新浪SAE一样,都是一个字“坑”,好了,不再吐槽,直入主题 1:直接登录新浪,添加网站,就直接添加我们在新浪SAE上创建的应用即可 2:填写信息,ICP备案信息号填写sinaapp.co ...
随机推荐
- 用create-react-app来快速配置react
最近在学react,然后感觉自己之前用的express+gulp+webpack+ejs的工作环境还是基于html+js+css这种三层架构的应用,完全跟react不是一回事. 愚蠢的我居然在原先的这 ...
- perl6 struct2-045 EXP
测试站点: http://www.yutian.com.cn/index.action http://www.hjxzyzz.com:8088/pfw/login.action 代码如下: use v ...
- Linux下文件目录权限和对应命令的总结
Linux下的权限有rwx三种,分别对应读,写,执行三种,在对文件和目录时,分别是下列含义: 对应权限的命令为: 文件: r-- cat, more, head, tail w-- echo, vi ...
- python并发编程之Queue线程、进程、协程通信(五)
单线程.多线程之间.进程之间.协程之间很多时候需要协同完成工作,这个时候它们需要进行通讯.或者说为了解耦,普遍采用Queue,生产消费模式. 系列文章 python并发编程之threading线程(一 ...
- Linux内核同步原语之原子操作
避免对同一数据的并发访问(通常由中断.对称多处理器.内核抢占等引起)称为同步. ——题记 内核源码:Linux-2.6.38.8.tar.bz2 目标平台:ARM体系结构 原子操作确保对同一数据的“读 ...
- Ubuntu 14.04 开机手动开启numlock led
在windows开机后,数字键盘灯是亮着的,但是当切换到ubuntu系统后登录用户名和密码时,如果你设定的有数字,都要先打开数字键盘区NUMLOCK键,然后再输入了,很不方便. 首先,需要安装一个小软 ...
- Delphi 10 seattle 去掉自带的代码连接线
- Linux 上配置 NTP SERVER
在CENTOS 6.2上面安装配置NTP SERVER 安装NTP:yum install ntp 配置时间源vi /etc/ntp.confserver 210.72.145.44server nt ...
- Oracle创建WM_CONCAT函数
Oracle创建WM_CONCAT函数 WM_CONCAT这个函数会出错,所以从 11g开始.官方不认可 WM_CONCAT.然后就没这个函数了, 下面就是创建WM_CONCAT这个函数的步骤 第一步 ...
- Python抓取微博评论(二)
对于新浪微博评论的抓取,首篇做的时候有些考虑不周,然后现在改正了一些地方,因为有人问,抓取评论的时候“爬前50页的热评,或者最新评论里的前100页“,这样的数据看了看,好像每条微博的评论都只能抓取到前 ...