调用微博API获取微博内容

article/2025/10/19 22:02:02

调用微博API获取微博内容

在采集微博数据的时候,可以利用微博的API来进行调用。在调用微博APi的时候需要做两项工作,第一步是创建应用,第二步是安装微博SDK.

一.创建应用

创建应用的目的是获取app-key和app-secret,并设置授权回调页。
(1)获取app-key和app-secret
登陆微博开放平台创建应用http://open.weibo.com/apps/new?sort=web
这里写图片描述

应用名称以及后续的信息随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret。应用创建成功后可以在“我的应用”里面看到刚刚创建的应用的详细信息,在“应用信息”里面可以找到App Key和App Secret,这些信息在后面会用到。
这里写图片描述

(2)设置授权回调页
接着上面的打开“应用信息”里面的“高级信息”,然后点击“高级信息”里面的“编辑”按钮,将“授权回调页面”设置为:https://api.weibo.com/oauth2/default.html,将“取消授权回调页”也设置为:https://api.weibo.com/oauth2/default.html。至此第一步工作已完成。

这里写图片描述

二.安装微博SDK

在安装SDK前,先了解一下微博的授权机制。
(1)授权机制
微博开放接口的调用,如发微博、获取用户基本信息、获取热门微博内容等,都是需要获取用户身份认证的。目前微博开放平台用户身份鉴权主要采用的是OAuth2.0。另外,为了方便开发者开发、测试自己的应用,我们还提供了开发者自身授权的身份鉴权方式,但开发者自身授权仅适用于应用所属的开发者自己调用接口。详细信息见链接:http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
(2)下载微博SDK
微博 SDK支持多种语言,本文以python和java的sdk为例来说明操作,微博sdk链接http://open.weibo.com/wiki/SDK,点击进入之后选择自己熟悉语言的SDK即可,如下所示:
这里写图片描述
安装python版微博sdk:
有两种安装方式:
1:github连接里的wiki有入门的使用方法http://github.liaoxuefeng.com/sinaweibopy/下载新浪微博SDK
2:python有个简单的安装方式:直接在命令行下键入:pip install sinaweibopy 使用方法见:https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO
实例验证,获取当前登录用户及其所关注(授权)用户的最新微博
这里需要注意的是在浏览器弹出一个页面,要先点击“授权”(这里进行的OAuth 2认证,我理解为就是用户访问我的应用后将页面导向新浪服务器然后用户输入信息到新浪服务器后授权给我的应用访问用户数据,这里我将的微博授权给下面的程序了),授权后浏览器中的URL类似:https://api.weibo.com/oauth2/default.html?code=2024222384d5dc88316d21675259d73a将code后面那个复制到控制端,程序需要读入2024222384d5dc88316d21675259d73a这个数据
这里写图片描述
注意:如果想获取别的信息,只需修改下图中的statuses__friends_timeline即可
这里写图片描述

详细代码如下:

# coding=utf-8
from weibo import APIClient
import webbrowser
APP_KEY='填入你的key'
APP_SECRET='填入你的secret'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html
# callback url#在网站放置“使用微博账号登录”的链接,当用户点击链接后,引导用户跳转至如下地址:
#利用官方微博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']['location']print u'微博:'+statuses[i]['text']

获取的内容如下:

这里写图片描述
安装java版微博sdk:
下载新浪api 的java SDK 地址:http://open.weibo.com/wiki/SDK,然后导入eclipse中,eclipse不能识别中文,解决办法:eclipse->首选项->常规->工作空间(这里我写的都是汉语,对应的英文自己查)->右边的文本文件编码选择其他,选UTF-8,这样eclipse就可以识别中文了。配置下载下来的java SDK,主要改一个文件,即src下面的config.properties:
client_ID :appkey 创建应用获取到的appkey (App Key)
client_SERCRET :app_secret 创建应用获取到的appsecret(Secret Key)
redirect_URI : 回调地址 OAuth2的回调地址(就是在高级信息里面填写的授权回调页)
使用方法
1、 请先填写相关配置:在Config.properties里 client_ID :appkey 创建应用获取到的appkey client_SERCRET :app_secret 创建应用获取到的appsecret redirect_URI : 回调地址 OAuth2的回调地址
2、 然后调用example里:OAuth4Code.java

public class OAuth4Code {
public static void main(String [] args) throws WeiboException, IOException{
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.print("Hit enter when it's done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String code = br.readLine();
Log.logInfo("code: " + code);
try{
System.out.println(oauth.getAccessTokenByCode(code));
} catch (WeiboException e) {
if(401 == e.getStatusCode()){
Log.logInfo("Unable to get the access token.");
}else{
e.printStackTrace();
}
}
}
}

3、 运行后会弹出浏览器地址跳转到授权认证页面,然后输入你的微博帐号和密码,会调转到你的回调地址页面,url后面会传递code参数
4、 然后在console输入code就能获取到oauth2的accesstoken
5、 接下来即可调用example,在此以user/show接口为例:

public class ShowUser {
public static void main(String[] args) {
String access_token = WeiboConfig.getValue("access_token");
String uid = args[0];
Users um = new Users(access_token);
try {
User user = um.showUserById(uid);
Log.logInfo(user.toString());
} catch (WeiboException e) {
e.printStackTrace();
}
}
}

access_token为auth4code获取到的oauth2的accesstoken。 由于目前只开放支持code的oauth认证方式,所以sdk暂时只支持code获取token方式。


http://chatgpt.dhexx.cn/article/n95pDfGf.shtml

相关文章

java 微博 api_Java使用新浪微博API开发微博应用的基本方法

新浪微博API现在运用比较广泛&#xff0c;做一个完整的开发流程Demo 1、第一步注册&#xff0c;就不多说了&#xff0c;注册帐号以及成为开发者帐号&#xff0c;这步操作不会的话请你马上砸掉电脑拔掉网线回家种田。 2、第二步创建应用&#xff0c;开发者帐号创建好了&#xff…

新浪微博api的使用

在采集微博数据的时候&#xff0c;可以利用微博的API来进行调用。在调用微博APi的时候需要做两项工作&#xff0c;第一步是创建应用&#xff0c;第二步是安装微博SDK. 创建应用 创建应用的目的是获取app-key和app-secret&#xff0c;并设置授权回调页。 登陆微博开放平台创…

微博开放平台api使用

前言&#xff1a;微博开放平台提供了微博数据的api接口&#xff0c;不仅可以直接通过api调用微博服务发布微博查询微博&#xff0c;更重要的是&#xff0c;可以在自己的网站上获得新浪微博api的授权&#xff0c;调用微博的某些内容&#xff0c;就好像我们再网站中看到好文章要分…

【转载】使用微博API接口获取数据

巧妇难为无米之炊。 数据获取是数据分析的前提。许多网站会通过API接口向第三方开放网站的部分数据。新浪微博也不例外。你可以查看微博API列表。 商业数据API为&#xff08;如place/nearby_timeline/biz&#xff09;为收费接口&#xff0c;若想要调用这一类接口&#xff0c;…

微博官方API使用方法【全流程教学】

微博官方API使用方法【全流程教学】 微博开发者身份认证创建自己的应用新应用的相关配置基本信息高级信息 微博认证流程OAuth2.0认证(核心步骤)Access Token授权有效期接口调用Demo(以评论接口为例&#xff09; 微博开发者身份认证 访问微博开放平台&#xff0c;登录自己微博账…

一文教会你JDK8的函数式编程

JDK8的1个新特性就是支持函数式接口(Functional Interface)。 函数式接口就是一个有且仅有一个抽象方法&#xff0c;但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为Lambda表达式。 我们也可以自行定义函数式接口&#xff0c;如: FunctionalInterface interf…

Modern C++ 学习笔记——C++函数式编程

往期精彩&#xff1a; Modern C 学习笔记——易用性改进篇Modern C 学习笔记 —— 右值、移动篇Modern C 学习笔记 —— 智能指针篇Modern C 学习笔记 —— lambda表达式篇Modern C 学习笔记 —— C面向对象编程Modern C 学习笔记 —— C函数式编程 Modern C 学习笔记——C函数…

java8函数式编程实例

什么是函数式编程 函数式编程是java8的一大特色&#xff0c;也就是将函数作为一个参数传递给指定方法。别人传的要么是基本数据类型&#xff0c;要么就是地址引用 &#xff0c;我们要穿一个“动作”。 Stream 说到函数式编程&#xff0c;就不得不提及Stream&#xff0c;Stre…

Scala函数式编程

一、函数式编程定义&#xff1a; Scala是一门既面向对象&#xff0c;又面向过程的语言。在Scala中&#xff0c;函数与类、对象地位是一样&#xff0c;所以说scala的面向过程其实就重在针对函数的编程 了&#xff0c;所以称之为函数式编程 在Scala中定义函数需要使用 def 关键…

什么是函数式编程?

当我们说起函数式编程来说&#xff0c;我们会看到如下函数式编程的长相&#xff1a; 函数式编程的三大特性&#xff1a; immutable data 不可变数据&#xff1a;像Clojure一样&#xff0c;默认上变量是不可变的&#xff0c;如果你要改变变量&#xff0c;你需要把变量copy出去修…

python函数式编程

大家好 这里还还还是长弓 今天我们来讲讲python中的函数式编程 目录 函数式编程 高阶函数 map reduce filter sorted 返回函数 闭包 nonlocal使用 匿名函数lambda 装饰器 偏函数 函数式编程 有些同学疑惑了&#xff0c;我们已经学了函数&#xff0c;为什么还要学这…

函数式编程

Functional Programming 什么是函数式编程 函数式编程的思维方式&#xff1a;把显示世界的事务和事物之间的联系抽象到程序世界&#xff08;对运算过程进行抽象&#xff09; 函数式编程中的函数指的数学中的函数即映射关系&#xff0c;输入的值对应一个输出的值&#xff0c;…

appium环境搭建python_appium环境搭建python

1&#xff0c;appium是开源的移动端自动化测试框架&#xff1b;2&#xff0c;appium可以测试原生的、混合的、以及移动端的web项目&#xff1b;3&#xff0c;appium可以测试ios&#xff0c;android应用(当然了&#xff0c;还有firefox os)&#xff1b;4&#xff0c;appium是跨平…

Windows下Appium环境搭建小结

文章目录 Windows下Appium环境搭建小结需要安装的软件1. JDK下载安装/配置 2. Android SDK3. Maven下载安装/配置 4. Appium下载安装/配置 5. Eclipse TestNG 和 ADT 插件下载安装一条龙配置1、先配置Maven 创建一个项目 Windows下Appium环境搭建小结 本文需要读者已安装了Ec…

Mac端Python+Appium环境搭建

一、安装java sdk java安装&#xff1a;下载完直接安装jdk1.8 二、 安装Android Studio 1.下载安装 下载地址&#xff1a;https://www.androiddevtools.cn/# 2.安装完成后&#xff0c;打开SDK Manager 三、JAVA SDK和Android SDK环境变量配置 1.终端输入&#xff1a;ls…

安卓移动端appium环境搭建流程

安卓移动端appium环境搭建流程 基本步骤: 安装Node.js 安装JDK&#xff0c;及配置环境变量 安装SDK&#xff0c;及配置环境变量 安装Appium桌面版本(建议安装GitHub的最新版) python中pip下载Appium-Python-Client 下载allure-2.13.8并加入环境变量 管理员身份运行appiu…

pythonappium环境搭建_python+appium 环境搭建

最近学习了一下python语言&#xff0c;听说appium是做app的ui层的自动化的一个很好的框架&#xff0c;也是很多人在学习的框架&#xff0c;所以很感兴趣&#xff0c;也特意来学习一下&#xff0c;下面是我学习过程的一些心得和总结&#xff0c;希望对大家有所帮助。 一、环境搭…

Appium环境搭建(集齐Windows和MacOS的宝藏内容)

Appium环境搭建目录 Windows系统环境下安装Node.js安装JDK及环境变量配置添加环境变量 安装SDK添加环境变量 安装Appium可通过三种方法安装安装 **appium-doctor** MacOS系统环境下安装xcode安装依赖安装WebDriverAgent运行WebDriverAgent windows 安装 tidevice常用的tidevice…

mac appium环境搭建

appium环境的搭建其实也不复杂&#xff0c;主要是配置的比较多&#xff0c;只是在配置的过程中&#xff0c;根据当时的机器配置会遇到一些具体问题&#xff0c;一个个解决就可以了。 安装下面这篇文章搭建就可以了 超详细的Mac下appium环境搭建 配置java环境有问题&#xff0c;…

pythonappium环境搭建_python appium环境搭建

1&#xff0c;appium是开源的移动端自动化测试框架&#xff1b; 2&#xff0c;appium可以测试原生的、混合的、以及移动端的web项目&#xff1b; 3&#xff0c;appium可以测试ios&#xff0c;android应用&#xff08;当然了&#xff0c;还有firefox os&#xff09;&#xff1…