Python调用微博API获取微博内容

一:获取app-key 和 app-secret

    使用自己的微博账号登录微博开放平台(http://open.weibo.com/),在微博开放中心下“创建应用”创建一个应用,应用信息那些随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret

二:设置授权回调页


    在“微博开放平台”的“管理中心”找到刚才创建的应用,点开这个应用,点开左边“应用信息”栏,会看见“App key”和“App Secret”的字样,这两个东西是要在后面程序中使用的。然后在“应用信息”下的“高级信息”点击“编辑”按钮,将“授权回调页面”设置为:https://api.weibo.com/oauth2/default.html,将“取消授权回调页”也设置为:https://api.weibo.com/oauth2/default.html。

三:安装微博 python SDK

有两种安装方式:

1:http://github.liaoxuefeng.com/sinaweibopy/下载新浪微博SDK

2:python有个简单的安装方式:直接在命令行下键入:

sudo pip install sinaweibopy

四:实例验证,获取当前登录用户及其所关注(授权)用户的最新微博

这里需要注意的是在浏览器弹出一个页面,要先点击“授权”(这里进行的OAuth 2认证,我理解为就是用户访问我的应用后将页面导向新浪服务器然后用户输入信息到新浪服务器后授权给我的应用访问用户数据,这里我将的微博授权给下面的程序了),授权后浏览器中的URL类似:https://api.weibo.com/oauth2/default.html?code=2024222384d5dc88316d21675259d73a将code后面那个复制到控制端,程序需要读入2024222384d5dc88316d21675259d73a这个数据 

注意:如果想获取别的信息,只需修改

statuses = client.statuses__friends_timeline()['statuses']

中的 statuses__friends_timeline即可


# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser        #python内置的包APP_KEY = 'xxxxxxxx'#注意替换这里为自己申请的App信息
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'#回调授权页面#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授权页面的url,利用webbrowser打开这个url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)#获取code=后面的内容
print '输入url中code后面的内容后按回车键:'
code = raw_input()
#code = your.web.framework.request.get('code')
#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# 设置得到的access_token
client.set_access_token(access_token, expires_in)#可以打印下看看里面都有什么东西
statuses = client.statuses__friends_timeline()['statuses'] #获取当前登录用户以及所关注用户(已授权)的微博</span>length = len(statuses)
print length
#输出了部分信息
for i in range(0,length):print u'昵称:'+statuses[i]['user']['screen_name']print u'简介:'+statuses[i]['user']['description']print u'位置:'+statuses[i]['user']['location']print u'微博:'+statuses[i]['text']


结果如下(截取部分数据):

以下为我的关注用户的微博:


拿上边代码为例,这里我们获取的信息有:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python独立log示例_带有Python示例的math.log1p()方法

python独立log示例Python math.log1p()方法 (Python math.log1p() method) math.log1p() method is a library method of math module, it is used to get the natural logarithm of 1x (base e), it accepts a number and returns the natural logarithm of 1number on base e…

15947884 oracle_Oracle Patch Bundle Update

一、相关知识介绍以前只知道有CPU(Critical Patch Update)和PSU(Patch Set Update),不知道还有个Bundle Patch,由于出现了TNS-12531的BUG问题&#xff0c;需要在windows上打至少为Patch bundle 22补丁。通过学习查找&#xff1a;Oracle里的补丁具体分为如下这样6种类型&#xf…

鸿蒙系统hdc,HDC2020有看头:要揭开鸿蒙系统和EMUI11神秘面纱?

IFA2020算是HDC2020的预热吧&#xff0c;一个是9月2日在德国柏林举办的消费电子展&#xff0c;一个是在松山湖举办的华为开发者大会&#xff0c;二者的目的都一样&#xff0c;但也有一丝不同&#xff0c;IFA是为了让老外了解HMS、了解华为的智慧生态&#xff0c;而HDC2020就是要…

UVA 12501 Bulky process of bulk reduction ——(线段树成段更新)

和普通的线段树不同的是&#xff0c;查询x~y的话&#xff0c;给出的答案是第一个值的一倍加上第二个值的两倍一直到第n个值的n倍。 思路的话&#xff0c;就是关于query和pushup的方法。用一个新的变量sum记录一下这个区间里面按照答案给出的方式的值&#xff0c;比如说&#xf…

gdb ldexp_带有Python示例的math.ldexp()方法

gdb ldexpPython math.ldexp()方法 (Python math.ldexp() method) math.ldexp() method is a library method of math module, it is used to calculate expression x*(2**i), where x is a mantissa and i is an exponent. It accepts two numbers (x is either float or inte…

windows安装包删了会有影响吗_win7系统删除系统更新安装包的详细教程

win7系统使用久了&#xff0c;好多网友反馈说win7系统删除系统更新安装包的问题&#xff0c;非常不方便。有什么办法可以永久解决win7系统删除系统更新安装包的问题&#xff0c;面对win7系统删除系统更新安装包的图文步骤非常简单&#xff0c;只需要1.其实在win7旗舰版系统中&a…

解压android img文件怎么打开,解压压缩android img文件

boot.imgboot和recovery映像并不是一个完整的文件系统&#xff0c;它们是一种android自定义的文件格式&#xff0c;该格式包括了2K的文件头&#xff0c;后面紧跟着是用gzip压缩过的内核&#xff0c;再后面是一个ramdisk内存盘&#xff0c;ramdisk映像是一个最基础的小型文件系统…

Java String 学习笔记 (一)

2019独角兽企业重金招聘Python工程师标准>>> ###String 简介 String 并非java的8大基本数据类型之一。 java中基本数据类型存储在栈内存中。而String不是&#xff0c;新new的String 对象存储在堆内存中。而字符串存储在常量池中。String对象的引用存储中栈内存中。 …

tau nb_math.tau常数,带Python示例

tau nbPython math.tau常数 (Python math.tau constant) math.tau constant is a predefined constant, which is defined in math module, it returns the value of mathematical constant "τ" (Tau), the value is 6.283185307179586 math.tau常数是在数学模块中定…

pcl画圆球_PCL之轨迹绘制(二)

之前学习点云库做一些简单的应用都是直接复制demo的代码&#xff0c;然后把导入文件改一下&#xff0c;今天尝试自己写一些程序&#xff0c;结果错漏百出&#xff0c;难受的早上&#xff0c;不过坚持了下来&#xff0c;求夸&#xff5e;&#xff5e;&#xff5e;这个主要是一个…

note2 android4.3,玩家们动手吧 Note2安卓4.3固件已泄漏

【PConline 资讯】最近各个牌子的安卓机迎来了升级安卓4.3的大潮&#xff0c;现在三星Galaxy Note2的安卓4.3固件已经泄漏出来了。实际上&#xff0c;此前三星官方已经确认&#xff0c;Galaxy Note3可以获得官方的安卓4.3固件升级&#xff0c;但具体日期没有确定&#xff0c;只…

SDP学习笔记

一、SDP规范了回话描述的格式&#xff0c;一般结合会话协议共同工作。 常见的会话传送协议包括:SAP(Session Announcement Protocol 会话公告协议),SIP,RTSP,HTTP,和使用MIME的E-Mail。 &#xff08;PS&#xff1a;对SAP只能包含一个会话描述,其它会话协议的SDP可包含多个会话描…

sinh_带有Python示例的math.sinh()方法

sinhPython math.sinh()方法 (Python math.sinh() method) math.sinh() method is a library method of math module, it is used to get the hyperbolic sine of given number in radians, it accepts a number and returns hyperbolic sine. math.sinh()方法是数学模块的库方…

android serviceconnection unbind流程,Android unbindService 流程分析

基于Android 6.0的源码剖析&#xff0c; 分析bind service的启动流程。/frameworks/base/core/java/android/app/ContextImpl.java/frameworks/base/core/java/android/app/LoadedApk.java/frameworks/base/core/java/android/app/IServiceConnection.aidl(自动生成Binder两端)…

【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题

今天是用JUnit测试一段代码&#xff0c;报错method initializationerror not found:&#xff1a;出现如下问题&#xff1a; 双击这个就显示出现如下的错误&#xff1a; 查询网上&#xff0c;说是junit版本的问题&#xff1a; 那我就不使用JUnit这个Libernary了&#xff0c;下载…

flash 不显示 旋转 补间动画_【图片】Flash入门5:详解制作补间动画(非传统补间)【flash软件吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼●●关于补间动画●●●1、准备事项注意&#xff1a;像 Flash 中的大多数内容一样&#xff0c;动画不需要任何 ActionScript。然而&#xff0c;如果您愿意&#xff0c;您可以使用 ActionScript 创建动画。在创建补间之前&#xff0…

math.ceil带小数点_Python中带有示例的math.ceil()方法

math.ceil带小数点Python math.ceil()方法 (Python math.ceil() method) math.ceil() method is a library method of math module, it is used to get the ceil value of a given number, it accepts a number/numeric expression and returns the smallest integral value wh…

将byte数组以html形式输出到页面,java 数组显示到html

java 数组显示到html[2021-02-05 01:08:54] 简介:php去除nbsp的方法&#xff1a;首先创建一个PHP代码示例文件&#xff1b;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff1a;…

JDK各版本新增的主要特性

JDK1.5新特性&#xff1a; 1.自动装箱与拆箱&#xff1a; 2.枚举 3.静态导入&#xff0c;如&#xff1a;import staticjava.lang.System.out 4.可变参数&#xff08;Varargs&#xff09; 5.内省&#xff08;Introspector&#xff09;&#xff0c;主要用于操作JavaBean中的属性&…

oracle 导入sql文件 汉字乱码_将现有的sql脚本导入 Oracle 数据库,中文乱码问题...

将现有的sql 脚本导入 Oracle数据库比如 在windows 系统下&#xff0c;可以写一个 bat 来实现直接导入如&#xff1a;bat 中的内容如下&#xff0c;logs.log 将会记录执行日志sqlplus user/passworddbname create.sql > logs.logcreate.sql 中的内容可以是需要执行的sql 语句…