通过调用新浪微博API获取数据时数组采集中一个很好的方法,为了获取较新的资讯数据内容,本文主要介绍新浪微博OAuth2.0授权机制、微博开发者平台的使用、python调用微博API等内容,文末提供测试版python调用微博API的代码。

1. 新浪微博OAuth2.0授权机制

官方详解见连接:

新浪微博OAuth2.0授权机制

2.微博开发者平台的使用

地址: https://open.weibo.com/

打开微博开发者平台,采用网站接入WEB的方式。(移动端或微服务可以尝试)。

点击右上角的登陆:

采用账号登陆或安全登陆等方式,如无微博账户,可点击立即注册自行注册一个。

登陆后点击立即接入,创建新应用如下:

在此过程中,应用名称可能会和已有的冲突,改了好多次才成功创建。创建成功后页面自动跳转如下:

此时可以看到新建成功的AppKey与App Secret。

到此还尚未结束,还需要获取OAuth2.0 授权回调页,点击左侧高级信息后:

此时可以看到,授权回调页:未填写,取消授权回调页:未填写。点击右侧的编辑,输入两个地址:

如果暂时想不到合适的地址,可以填写 https://api.weibo.com/oauth2/default.html

点击提交后,至此,微博开发者平台相关配置已全部完成。

3.python调用微博API

环境:pycharm、python3.6

安装包:sinaweibopy-ng

注:由于网传安装包sinaweibopy在测试时无法安装,可能是由于版本不同所致,官方提供SDK下载地址如下: https://open.weibo.com/wiki/SDK#Python_SDK ,但是测试时无法访问,故下载的安装包为sinaweibopy-ng进行测试,如图:

测试版python调用微博API的完整代码如下:

!/usr/bin/env python3.6 -*- coding: utf-8 -*- -------------------------------- Description : -------------------------------- @Time : 2019/4/14 18:40 @File : weiboAPI.py @Software: PyCharm -------------------------------- @Author : lixj @contact : lixj_zj@163.com from weibo import APIClient # 1.配置 APP_KEY = '你的APP_KEY' APP_SECRET = '你的APP_SECRET' CALLBACK_URL = '你的CALLBACK_URL' # 回调授权页面,用户完成授权后返回的页面 # 2.调用APIClient生成client实例 client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) # 3.得到授权页面的url url = client.get_authorize_url() print(url) # 4.点击访问url,在浏览器端获得code code = '6ecdbf350f0680a6f00cc8c34ae721a6' req = client.request_access_token(code) client.set_access_token(req.get('access_token'), req.get('expires_in')) # 5.调用微博普通读取接口,返回最新的公共微博。 # 接口详情见 https://open.weibo.com/wiki/2/statuses/public_timeline statuses = client.statuses__public_timeline()['statuses'] print(len(statuses)) # 6.输出部分信息 for i in range(0, len(statuses)): print(u'昵称:' + statuses[i]['user']['screen_name']) print(u'简单介绍:' + statuses[i]['user']['description']) print(u'位置:' + statuses[i]['user']['location']) print(u'微博:' + statuses[i]['text']) print(statuses[i])

Make sure that you use a version of Python supported by this package. Currently you are using Python 3.6.

不兼容python版本,安装silangweiboapi-en即可

注册微博开发版本,账号设置-高级设置;

授权回调页在授权设置里面没有。

填写完整的信息即可,对应填写的网站。

输出信息方式:

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

每次调用api时连接的code的值都会改变。

http://apps.weibo.com/heyshheyou?code=6257d8f27bc683052d5521f6096a8b4c

解决方法:待解决。

上面叫通过 微博 ID获取用户发布过的历史 微博 内容,于是研究了下 新浪微博 提供的 API 1 首先在 微博 开放中心下“创建应用”创建一个应用,应用信息那些随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret    2 在“ 微博 开放平台”的“管理中心”找到刚才创建的应用,点开这个应用,点开左边“应用信息”栏,会看见“App key”和“App Secret”的字样,
很早之前写了两篇通过 python 程序发送 新浪微博 的文章(《 Python :通过命令行发送 新浪微博 》和《 Python :通过摄像头抓取图像并自动上传至 新浪微博 》),刚看到有朋友邮件咨询其中有关细节问题,感到文章没有写清楚,故新写一篇,补充开发中的一些细节。 一、注册个 新浪微博 账号,方法略。 二、在开放平台上注册个应用,网址:http://open.weibo.com/ 三、注册后会得到应用的相...
OAuth 2.0是目前最流行的 授权 机制,用来 授权 第三方应用,获取用户 数据 。 这个标准比较抽象, 使用 了很多术语,不容易理解。其实说起来并不复杂,下面我就通过一个简单的类比,帮助大家轻松理解,OAuth 2.0 到底是什么。 一、快递员问题 场景:我住在一个大型的居民小区,小区装有门禁系统,进入的时候需要输入密码。 需求:我经常网购和外卖,每天都有快递员来送货。我必须找到一个办法,让快递员通...
文章目录回顾 API 使用 流程准备工作 微博 API 新特点简单示例1.参数设置2. OAuth2.0 验证生成url3.从 API 读取 数据 进阶1.查看函数信息2.编写`fs_friends()`函数3.在主程序中 调用 `fs_friends()`函数思考 回顾 API 使用 流程 在上一篇文章 Python 编程之 API 入门: (一) 使用 百度地图 API 查地理坐标中,通过百度地图 API 使用 ,我们看到 API 调用 的一般流程为:...
http://blog.csdn.net/dongtingzhizi/article/details/9097735 http://blog.csdn.net/dongtingzhizi/article/details/9098527 # -*- coding: utf-8 -*- import weibo def run(APP_KEY , APP_SECRET , CALL_BACK
第一步, 微博 开放平台提供了 微博 数据 api 接口,不仅可以直接通过 api 调用 微博 服务发布 微博 查询 微博 ,更重要的是,可以在自己的网站上获得 新浪微博 api 授权 调用 微博 的某些内容,就好像我们再网站中看到好文章要分享到 微博 或者其他社交网站中一样,首先要进行注册开发者模式获取app key 和 app secret。 参考https://www.cnblogs.com/opensesame/p/6103...
最近没什么事情做,想利用写空闲的时间来做点事情,看了看论坛,,觉得还是得做一些项目,从项目来学习新的知识,这样成长的才能更快一些。 于是就开始准备做一个 新浪微博 的客户端,于是乎就牵扯到了 授权 认证,说实话,这个玩意真不好弄,以前我看过OAuth1.0的认证,感觉太麻烦了,都不远弄。但是 OAuth2.0 明显比1.0简单,对于这块大家可以自己去网上看看原理。       说实话, 新浪微博 客户端的关于
git clone fatal: The remote end hung up unexpectedly early EOF index-pack failed 解决方案 SuGuolin: -add --add 大数据学习踩坑之 HADOOP_HOME and hadoop.home.dir are unset. 怎么下整个bin目录啊? 科创板公司数据信息爬取 普通网友: 现在网页结构好像变了,请问怎样取获得所有html Python爬取微信小程序(Charles) Syc1102g: 我也找不到,请问怎么解决的 thymeleaf 模板解析 th:onclick 事件异常 & 常见的 thymeleaf 往 js 参数传值解决方法 weixin_45460877: 太强了,我也遇到了同样的问题 记一次生产redis序列化与反序列化问题 nested exception is java.io.StreamCorruptedException: invalid stream header:xxx org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j